当前位置:首页 > C语言也能干大事1
第一节
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语言什么都可以开发
准备工作,安装VC6(在网上搜“Visual C++ 6”,找合适的地址下载)。VC6在Vista、Windows下启动可能有兼容性提示。 3、开始做第一个C语言的程序
【文件】→【新建】,打开【工程】选项页,选择【Win32 Application】(不要选错了),在“位置”中修改工程保存的路径。(以前用Tubor C的同学会问“什么叫工程?”。在以前大家用TurboC写的程序一般也就是一个文件,但是用C语言写大程序的时候不可能把所有的代码都写在一个文件中,肯定要写很多文件。“工程(Project)”就是这些文件的一个集合。)在“工程名”中写入你为这个工程取的名字,最好有一定意义。下一步【一个简单的Windows程序】
4、向Windows的世界问好
MessageBox(NULL,TEXT(\世界你好\问好\ 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(\世界你好\问好\
第一个参数暂时不讲;第二个是正文;第三个是标题(Caption);第四个是类型。
MB_OK就是表示有一个OK按钮【确定】)
TEXT是一个宏,当字符串中有中文的时候最好用TEXT来包围这个字符串,虽然不使用TEXT在VC6中没问题,但是在VC7中有问题,而且微软也建议使用TEXT宏,因此在涉及到中文的场合要使用它。他的作用就是把中文转化成不会乱码的格式。(暂时这么认为)。_T(\问好\,其实_T只是TEXT的一个缩写而已。而且_T在有的低版本里不识别。TEXT()低版本也识别。暂时不用关心TEXT的细节。 换个样子:
MessageBox(NULL, TEXT(\世界你好\你好\ 可从设置希望在对话框中显示的按钮:
#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(\世界你好\你好\
(2)可是如果我想显示“确定、取消”按钮的时候同时使用问号图标呢? MessageBox(NULL, TEXT(\世界你好\你好\MB_ICONQUESTION);
MessageBox(NULL, 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(\你是人吗?\火星人\
MB_YESNO | MB_ICONQUESTION); if(ret==IDYES) {
MessageBox(NULL, TEXT(\火星人你好\问好\} else
{
MessageBox(NULL, TEXT(\欢迎回家来\问好\}
6、课后作业:自己动手写恶搞程序。
运行以后弹出询问对话框(有【是】、【否】两个按钮以及问号图标)“你是好人吗?”,如果点击【是】,则弹出对话框(只有一个【确定】按钮以及一个警告图标)“你看你就不像好人,点击【确定】开始格式化C盘!”;如果点击【否】,则弹出对话框(有【重试】、【取消】两个按钮)“尝试把你变成好人失败,是否重试?”。
转载自如鹏网!!!
共分享92篇相关文档