C语言是大小写敏感,所有的字符串都要用TEXT包起来,避免出错
TEXT是一个宏,当字符串中有中文的时候最好用TEXT来包围这个字符串,虽然不使用TEXT在VC6中没问题,但是在VC7中有问题,而且微软也建议使用TEXT宏,因此在涉及到中文的场合要使用它。他的作用就是把中文转化成不会乱码的格式。(暂时这么认为)。_T("问好"),其实_T只是TEXT的一个缩写而已。而且_T在有的低版本里不识别。TEXT()低版本也识别。暂时不用关心TEXT的细节
【文件】→【新建】,打开【工程】选项页,选择【Win32 Application】,下一步【一个简单的Windows程序】
- int APIENTRY WinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPSTR lpCmdLine,
- int nCmdShow)
- {
- /* TODO: Place code here.*/
- MessageBox(NULL,TEXT("世界您好"),TEXT("标题"),MB_OK);
- return 0;
- }
可是如果我想显示“确定、取消”按钮的时候同时使用问号图标呢?
- MessageBox(NULL, TEXT("世界你好"), TEXT("你好"), MB_OKCANCEL|MB_ICONQUESTION);
“ | ”是什么意思?“ | ”是位运算里的“或”运算,只有对应的两个二进位有一位为 1 时,结果位才为 1 ,否则为 0 。 MB_OK、MB_OKCANCEL等的低四位不同,但是高位永远为0; MB_ICONHAND 、 MB_ICONQUESTION 等的低 5 至第 8 位不同,而其他位永远为 0 。这样“ MB_OK、MB_OKCANCEL ”组的数值与“ MB_ICONHAND 、 MB_ICONQUESTION ”组的数值进行或运算后能分别保留各自的部分,也就是在结果值中同时体现两组的取值。
可设置希望在对话框中显示的按钮:
- #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
选择后的判定
- int ret = MessageBox(NULL, TEXT("你是外星人吗?"), TEXT("火星人"),MB_YESNO | MB_ICONQUESTION);
- if(IDYES==ret){
- MessageBox(NULL, TEXT("火星人你好"), TEXT("问好"),MB_OK);
- }
- else{
- MessageBox(NULL, TEXT("欢迎回家来"), TEXT("问好"),MB_OK);
- }
跟多参考win32Api
时间: 2024-12-24 21:05:44