/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------
HelloMsg.c -- Displays "Hello, world!" in a message box.
刚开始学windows编程,这是我学的第一个显示“message box”(对话框或消息框)的C程序,是用API函数。
可以说是对MessageBox的第四个参数的一个使用小结,不能保证全面,但也够用了。
程序在Windows XP SP3操作系统的C-free 4.0和M-VC++ 6.0环境中均能正常编译运行,但在其他的系统环境下的运行结果就不知道了。
如果有高手试验过,或者还有其他MessageBox的有关知识,麻烦在此留个言,小弟感激不尽!
---------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
#include
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------
MessageBox的第四个参数可以是在WINUSER.H中定义的一组以前缀“MB_”开始的常数的组合,可以在下面选择一个常数指出希望在消息对话框中显示的按钮
#define MB_OK 0x00000000L //确定
#define MB_OKCANCEL 0x00000001L //确定 取消
#define MB_ABORTRETRYIGNORE 0x00000002L //终止(A) 重试(R) 忽略(I)
#define MB_YESNOCANCEL 0x00000003L //是(Y) 否(N) 取消
#define MB_YESNO 0x00000004L //是(Y) 否(N)
#define MB_RETRYCANCEL 0x00000005L //重试(R) 取消
#define MB_CANCELRETRYCONTINUE 0x00000006L //取消 重试(T) 继续(C)
#define MB_OKHELP 0x4000 //确定 帮助 当按F1或此按钮时可以引起Help事件
下面是消息对话框的格式参数
#define MB_APPLMODAL 0 //应用程序模式。由缺少值设置,对应的行为可以使用MB_SYSTEMMODAL
//或MB_TASKMODAL来改变,用户可在不关闭该消息对话框的情况下,继续使用其它对话框
#define MB_SERVICE_NOTIFICATION 0x40000 // 允许消息对话框在一个没有被注册的桌面上显示
#define MB_DEFAULT_DESKTOP_ONLY 0x20000 // 消息对话框必须出现在缺少的桌面上,这个桌面是用户注册的桌面
#define MB_SETFOREGROUND 0x10000 // 使消息对话框成为当前的窗口
#define MB_RIGHT 0x80000 //使消息对话框内的信息向右对齐
#define MB_RTLREADING 0x100000 //关闭消息对话框的“X”按钮设置在左边
#define MB_TOPMOST 0x40000 //使消息对话框 前端显示
#define MB_DEFBUTTON1 0 // 消息对话框的第一个按钮是缺省的按钮
#define MB_DEFBUTTON2 256 // 消息对话框的第二个按钮是缺省的按钮
#define MB_DEFBUTTON3 512 // 消息对话框的第三个按钮是缺省的按钮
#define MB_DEFBUTTON4 0x300 // 消息对话框的第四个按钮是缺省的按钮
#define MB_SYSTEMMODAL 4096 // 系统模式;操作与%MB_APPLMODAL相同,不同的是消息对话框具有WS_EX_TOPMOST样式,
//所以它会保持在所有其它窗口和对话框之上,此消息对话框不允许用户在它被关闭之前
//进行任何的其他操作,这个标记可以为十分重要的信息进行保留。
#define MB_TASKMODAL 0x2000 //任务模式;属于当前应用程序的所有顶层窗口都变成禁止
//状态(变灰,无法使用鼠标和键盘操作),直到对话框被解除(关闭)。
//MB_TASKMODAL一般用来显示真实的模式对话框。
下面是消息对话框图标显示参数,与上面的对话框按钮种类通过操作符号 “|”组合使用
#define MB_ICONHAND 0x00000010L //(红叉)出错或停止提示
#define MB_ICONQUESTION 0x00000020L //(问号“?”)疑问提示
#define MB_ICONEXCLAMATION 0x00000030L //(黄色惊叹号“!”)警告提示
#define MB_ICONASTERISK 0x00000040L //(小写字母“i”)信息提示
下面是某些消息对话框图标的代替名称,其实只是一个记号而已
#define MB_ICONWARNING MB_ICONEXCLAMATION //
#define MB_ICONERROR MB_ICONHAND //
#define MB_ICONINFORMATION MB_ICONASTERISK //
#define MB_ICONSTOP MB_ICONHAND //
当然,还有一些“未解之谜”,这些都是不明使用方法的,望知情者慷慨告之
#define MB_DEFMASK 3840 //
#define MB_MODEMASK 0x00003000
#define MB_TYPEMASK 15
#define MB_ICONMASK 240 //以上几个都带“MASK”,可能是某种模式
#define MB_NOFOCUS 0x00008000
#define MB_USERICON 128 //这个好像是自定义图标,具体怎么用还不知道
---------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
int WINAPI WinMain (
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow
)
{
MessageBox (
NULL,
TEXT ("Hello, Windows 98!"),
TEXT ("HelloMsg"),
0
);
return 0 ;
}
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------
这只是刚开始而已,有很多还是不懂的,还得努力学习,我的目标就是编出一系列实用的Windows应用程序
---------------------------------------------------------------------------------------------------------------------------------------------------------------------*/