【文件属性】:
文件名称:C语言也能干大事 全部板书
文件大小:660KB
文件格式:RAR
更新时间:2014-08-28 08:21:58
c 干大事 板书
第一节板书:
1、MingW就是一个C/C++的编译器。
编译器和编辑器:编译器其实就是把源代码编译成目标代码的程序;Tc就是一个编辑器:能在里边敲代码,高亮显示,自动提示。
2、
C-Free里边可以运行、也可以调试。设置断点很简单,就是在要设置断点的代码行前边点击一下鼠标,有了一个红色小点就说明设置好了断点。
3、控制台程序的入口是main,Win32程序的入口是WinMain
4、以前用TuborC的同学会问“什么叫工程?”。在以前大家用TurboC写的程序一般也就是一个文件,但是用C语言写大程序的时候不可能把所有的代码都写在一个文件中,肯定要写很多文件。“工程(Project)”就是这些问题的一个集合。)在“工程名”中写入你为这个工程取的名字,最好有一定意义。
5、Windows程序的骨干代码:
#include
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
return 0 ;
}
6、
向Windows的世界问好
(1)MessageBox(NULL,TEXT("世界你好"),TEXT("问好"),MB_OK);
第一个参数暂时不讲;第二个是正文;第三个是标题(Caption);第四个是类型。
MB_OK就是表示有一个OK按钮【确定】)
TEXT是一个宏,当字符串中有中文的时候最好用TEXT来包围这个字符串,虽然不使用TEXT在VC6中没问题,但是在VC7中有问题,而且微软也建议使用TEXT宏,因此在涉及到中文的场合要使用它。他的作用就是把中文转化成不会乱码的格式。(暂时这么认为)。_T("问好"),其实_T只是TEXT的一个缩写而已。而且_T在有的低版本里不识别。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 | define 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”组的数值进行或运算后能分别保留各自的部分,也就是在结果值中同时体现两组的取值。
拿到1000010以后怎么判断是不是和0000010或运算来的?
1000010
0000010 与&
======
0000010
1000011
0000010 &
=======
0000010
这种风格叫“掩码”,在Windows编程中这种用法会经常用到。
大家想像一下MessageBox的内部实现是怎么样的?
if((mode& MB_OK)== MB_OK)
{
//显示OK按钮
}
if((mode&
MB_ICONQUESTION)== MB_ICONQUESTION)
{
//显示问好
}
itoa、atoi定义在stdlib.h中。
(4)默认按钮
为什么要有默认按钮:一个方便用户,不用思考,直接点回车就可以选择默认按钮;防止用户误操作,默认的按钮应该是最优选的按钮。“是否保存文件?”默认应该是“确定”,“是否发射导弹?”默认应该是“取消”。
还可以指定哪个按钮是默认按钮,猜一下这些选项的取值的特征是什么?
#define
MB_DEFBUTTON1
0x00000000L#define
MB_DEFBUTTON2
0x00000100L#define
MB_DEFBUTTON3
0x00000200L#define
MB_DEFBUTTON4
0x00000300L示例代码:
MessageBox(NULL, TEXT("你是人吗?"), TEXT("火星人"), MB_YESNO | MB_ICONQUESTION| MB_DEFBUTTON2);
(5)返回值
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);
}
7、课后作业:自己动手写恶搞程序。
(1)运行以后弹出询问对话框(有【是】、【否】两个按钮,默认选择【否】按钮,以及问号图标)“你是好人吗?”,如果点击【是】,则弹出对话框(只有一个【确定】按钮以及一个警告图标)“你看你就不像好人,点击【确定】开始格式化C盘!”;如果点击【否】,则弹出对话框(有【重试】、【取消】两个按钮)“尝试把你变成好人失败,是否重试?”。
(2)自己发挥完善上边的恶搞程序。
【文件预览】:
C语言也能干大事 全部板书
----板书()
--------C语言也能干大事全部板书(带书签).pdf(618KB)
----C语言也能干大事.chm(160KB)