1、C语言不是只能开发黑底白字的控制台界面程序。学习本课的基础:本课程不讲C语言基础知识,C语言考及格,学的过程中配合复习,有不懂的回去翻书。

2、学完本课程以后同学们做的一些作品赏析:计算器、俄罗斯方块、音乐播放器、学生管理系统(http://www.rupeng.com/forum/thread-2487-1-1.html ),邮件客户端(http://www.rupeng.com/forum/thread-3697-1-1-uid7.html ),Web论坛(http://www.rupeng.com/forum/thread-3991-1-1-uid7.html )可以开发游戏、网络程序、网站程序等。C语言什么都可以开发

3、准备工作,安装VC6(在网上搜“Visual C++ 6”,找合适的地址下载)。VC6在Vista、Windows下启动可能有兼容性提示。

3、开始做第一个C语言的程序

【文件】→【新建】,打开【工程】选项页,选择【Win32 Application】(不要选错了),在“位置”中修改工程保存的路径。(以前用Tubor C的同学会问“什么叫工程?”。在以前大家用TurboC写的程序一般也就是一个文件,但是用C语言写大程序的时候不可能把所有的代码都写在一个文件中,肯定要写很多文件。“工程(Project)”就是这些文件的一个集合。)在“工程名”中写入你为这个工程取的名字,最好有一定意义。下一步【一个简单的Windows程序】

4、向Windows的世界问好

MessageBox(NULL,TEXT("世界你好"),TEXT("问好"),MB_OK);

VC6在Vista、Windows下编译调试时可能有兼容性提示。

5、学本课程常见问题

1)为什么不用TurboC?

Turbo C(Win-TC)太老了,界面还是DOS界面,库也是DOS的库,没有网络开发包、没有Windows界面开发包。TC只能用来学C的基础,要进行实际开发必须使用先进一点的工具。还是让TurboC进博物馆吧。

(2)为什么不用更高版本的VC?

我们不使用高版本的VC主要是如下考虑:VC6和高版本的VC没有本质区别(VC6是1998年的东西,大部分人、公司还是用VC6,市面上的书也都是用VC6),只不过是升级了一下C++的版本、STL的版本而已,对咱们这次学习没有什么影响;VC6的操作方式和VC2008非常相似,用熟了VC6再学高版本的VC只用半小时而已;高版本的VC体积太大,要五六百兆,而上面给出的VC6只有100MB。VC2008下建立工程。

(3)学C语言还是学其他语言,用其他语言实现岂不是更好?

用最熟悉的语言深入编程的各个领域(网络、数据库、图形学、内核等),一通百通,一切语言都是纸老虎。参考资料如鹏网首页。

6、深入研究MessageBox

(1)MessageBox(NULL,TEXT("世界你好"),TEXT("问好"),MB_OK);

第一个参数暂时不讲;第二个是正文;第三个是标题(Caption);第四个是类型。MB_OK就是表示有一个OK按钮【确定】)TEXT是一个宏,当字符串中有中文的时候最好用TEXT来包围这个字符串,虽然不使用TEXT在VC6中没问题,但是在VC7中有问题,而且微软也建议使用TEXT宏,因此在涉及到中文的场合要使用它。他的作用就是把中文转化成不会乱码的格式。(暂时这么认为)。_T("问好"),其实_T只是TEXT的一个缩写而已。而且_T在有的低版本里不识别。TEXT()低版本也识别。暂时不用关心TEXT的细节。

换个样子:

MessageBox(NULL, TEXT("世界你好"), TEXT("你好"),MB_OKCANCEL);

可从设置希望在对话框中显示的按钮:

#define MB_OK
0x00000000L

#define MB_OKCANCEL
0x00000001L

#define MB_ABORTRETRYIGNORE(终止,重试,忽略)abort retry ignore
0x00000002L

#define MB_YESNOCANCEL
0x00000003L

#define MB_YESNO
0x00000004L

#define MB_RETRYCANCEL
0x00000005L

也可以设置对话框中显示的图标:

#define MB_ICONHAND (×)
0x00000010L

#define MB_ICONQUESTION (?)
0x00000020L

#define MB_ICONEXCLAMATION (!)
0x00000030L

#define MB_ICONASTERISK (i)星号
0x00000040L

比如:MessageBox(NULL, TEXT("世界你好") ,TEXT("你好"), MB_ICONQUESTION);(依旧有确定选项)

(2)可是如果我想显示“确定、取消”按钮的时候同时使用问号图标呢?

MessageBox(NULL, TEXT("世界你好"), TEXT("你好"),MB_OKCANCEL| MB_ICONQUESTION);

MessageBox(NULL, TEXT("世界你好"), TEXT("你好"),

MB_ABORTRETRYIGNORE | MB_ICONEXCLAMATION);

(3)思考:到这一步如果你只是在背诵“第一组和第二组中间放一个竖线就可以实现两种效果的组合形式”,那么你未来只会成为一个代码工人。我们要思考一下其背后的原理。

“|”是什么意思?“|”是位运算里的“或”运算,只有对应的两个二进位有一位为1时,结果位才为1 ,否则为0。MB_OK、MB_OKCANCEL等的低四位不同,但是高位永远为0;MB_ICONHAND、MB_ICONQUESTION等的低5至第8位不同,而其他位永远为0。这样“MB_OK、MB_OKCANCEL”组的数值与“MB_ICONHAND、MB_ICONQUESTION”组的数值进行或运算后能分别保留各自的部分,也就是在结果值中同时体现两组的取值。

这种风格叫“掩码”,在Windows编程中这种用法会经常用到。

(4)返回值

MessageBox是有返回值的,返回值为用户点击的按钮:

#define IDOK

#define IDCANCEL
#define IDABORT

#define IDRETRY
#define IDIGNORE
#define IDYES
#define IDNO
代码:

int ret = MessageBox(NULL, TEXT("你是人吗?"), TEXT("火星人"),

MB_YESNO | MB_ICONQUESTION);

if(ret==IDYES)

{

MessageBox(NULL, TEXT("火星人你好"), TEXT("问好"),MB_OK);

}

else

{

MessageBox(NULL, TEXT("欢迎回家来"), TEXT("问好"),MB_OK);

}

6、课后作业:自己动手写恶搞程序。

运行以后弹出询问对话框(有【是】、【否】两个按钮以及问号图标)“你是好人吗?”,如果点击【是】,则弹出对话框(只有一个【确定】按钮以及一个警告图标)“我看你就不像好人,点击【确定】开始格式化C盘!”;如果点击【否】,则弹出对话框(有【重试】、【取消】两个按钮)“尝试把你变成好人失败,是否重试?”

C语言也能干大事第六节(如鹏基础)相关推荐

  1. c语言开发网站教程,C语言也能干大事之C语言开发网站教程

    教程名称:C语言也能干大事之C语言开发网站教程 课程简介: 本章主干知识点:现在做桌面窗口程序开发的工作已经不多了,目前企业需求量最大的技术是"网站开发".因此发布一套<C语 ...

  2. 如鹏网C语言也能干大事精华帖

    如鹏网 http://www.rupeng.com/ 1.尘封 俄罗斯方块    hity 俄罗斯方块    小马_xiao   由写俄罗斯方块引发的种种 2.Diao_Cow   很funny的程序 ...

  3. 【C语言也能干大事】第五讲 组合框控件,下拉列表

    获得组合框控件的句柄 HWND hwndCombo1 = GetDlgItem(hwnd, IDC_COMBO1); 确定目前选项的索引 int curSel = ComboBox_GetCurSel ...

  4. 啊哈c语言第四章第六节练习1

    1.请尝试用while循环打印下面的图形,当输入的n值为3时,打印结果是: 1 22 333 当输入的n值为6时,打印结果是: 1 22 333 4444 55555 666666 #include ...

  5. ACM公选第六节下DP基础(当复习了)2020.4.16-5.10补

    陈老师的ppt 在第一节有nefu oj的地址 文章目录 最早在数学里学 避免重复计算 有递推有递归 分解成相互重叠的子问题 斐波那契重复了很多次 斐波递推 nefu20 穿过街道 状态,与选择 两个 ...

  6. C 语言究竟能干什么

    C语言究竟能干什么 序言 鉴于现在已经大三了,很多同学很迷茫,自己学的东西到底能做什么,将来自己到底能干什么?我不想看着同学迷茫的面孔, 特别是几个好兄弟,有几个想学习编程,但又苦苦找不到门路的兄弟, ...

  7. php能做的事,PHP也能干大事 随机函数

    写在前面 PHP也能干大事是我总结的PHP语法特性及相关函数类库的经典用法,并不一定是真正能实现四两拨千斤的功效,但是掌握这些方法,可以在你的工作和学习上有一些帮助,希望大家能集思广益,将<PH ...

  8. 基于Java语言构建区块链(六)—— 交易(Merkle Tree)

    基于Java语言构建区块链(六)-- 交易(Merkle Tree) 2018年04月16日 10:21:35 wangwei_hz 阅读数:480更多 个人分类: 区块链比特币bitcoin 最终内 ...

  9. 第六节:ES6为字符串String带来哪些好玩的特性?

    工作日的推送尝试一下在晚上发,一个是考虑大家下班了放学了,心情轻松愉悦,适合阅读:另一个是上班时间情绪紧绷,没有心思也没有时间去完整地读完这种技术类的文章.(即便通俗易懂) 第六节,开讲啦...... ...

  10. 【计导非课系列】 第六节 算法 数据结构

    [计导非课系列] 第六节 算法 数据结构 程序=算法+数据结构 众所周知,完美的程序是由优秀的算法和良好的数据结构组成的.什么是算法?什么是数据结构?这里,我们将一起探索算法和数据结构的奥秘,初步揭开 ...

最新文章

  1. Sql Server实用操作-无数据库日志文件恢复数据库两种方法
  2. IE9开始支持SVG格式(VML终结)
  3. java 代码效率_Java效率
  4. python globals().get,python – 为什么人们会使用globals()来定义变量
  5. 无人值守数据中心这一次真的能“大势所趋”吗?
  6. 使用delegate类型设计自定义事件
  7. 可口可乐开了家网店卖奶,价值62亿元
  8. 安卓电视硬件测试软件,据说这是2017 最好用的智能电视软件!
  9. java班级学生列表_java学生班级管理系统+源代码+截图.doc
  10. android app反解工具,安卓反编译逆向工具:Apktool + dex2jar 教程
  11. 如何编写投标项目实施方案
  12. 幅值与峰峰值的计算_交流电有效值与峰值计算公式的推导过程.
  13. 独立游戏开发(一)-- 安装Unity
  14. Springboot+netty实现Web聊天室
  15. vulnstack4渗透-内网篇
  16. ac数论之矩阵的平方和
  17. Vue3中Compositions API的使用(二)
  18. Xcode6的新特性、
  19. sql注入风险和案例分析
  20. 说一说用户思维!!!

热门文章

  1. 第二篇 在Win10系统上配置有限元框架FEniCS
  2. 集成运算放大器之积分电路搭建
  3. Windows下XMake编译imgui成功之DX11
  4. MTK平台 Android8.1 SD卡驱动能力修改
  5. “谷姐一下”、“寂寞全消除”
  6. 国内各类有用搜索网站汇总
  7. MS Office VBA(包括Excel VBA、Word VBA、Access VBA等)资料下载汇总
  8. 金蝶kis商贸采购单商品代码_金蝶KIS云商贸版(采购模块)常见问题汇总
  9. 《机器人动力学与控制》第九章——动力学 9.4 欧拉-拉格朗日方程法应用举例(上)
  10. 仓库管理软件中的账套是什么意思