《C语言也能干大事》第一节

无需下载电骡客户端,照样下载如鹏电骡站资源
http://www.rupeng.com/forum/viewthread.php?tid=12021&extra=


清晰版请下载:(请用IE打开此链接,不要“直接另存为” 安装迅雷,电骡 等下载软件会自动识别。或者直接右键点击---弹出菜单“使用迅雷下载”)
ed2k://|file|C%E8%AF%AD%E8%A8%80%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91%E5%AE%9E%E6%88%98%E4%B9%8B-c%E8%AF%AD%E8%A8%80%E4%B9%9F%E8%83%BD%E5%B9%B2%E5%A4%A7%E4%BA%8B1.rar|49232026|3f9eb8b49ecaa08e8e94f23bb90c1699|h=wwtpbzywocisat6dpzkqaimf2ktkqxje|/


更多资源:http://www.verycd.com/topics/2800166/

板书:

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
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
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
1

#define IDCANCEL
2

#define IDABORT
3

#define IDRETRY
4

#define IDIGNORE
5

#define IDYES
6

#define IDNO
7

代码:


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盘!”;如果点击【否】,则弹出对话框(有【重试】、【取消】两个按钮)“尝试把你变成好人失败,是否重试?”。

别把教学视频当电影看!!!多练!!!多写!!!

转载地址:

http://www.rupeng.com/forum/thread-8797-1-1-uid59852.html

作者: hnrainll   发布时间: 2010-09-01