您的位置:首页 > 其它

Windows程序设计——消息对话框的使用小结

2009-12-06 16:01 344 查看
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------
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应用程序
---------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: