发新话题
打印

[例子]MessageBox - 消息窗口

[例子]MessageBox - 消息窗口

复制内容到剪贴板
代码:
/*
MessageBox - 消息窗口
www.ecurb2006.com
*/
#include "gui.h" /* GUI 的头文件 */

void MyWin(HAND hd,MESSAGE msg) /* 窗口的消息处理函数 */
{
int i;
if(msg.type == GM_SYSTEM) /* 判断消息类型,消息类型全部为大写  */
switch(msg.message)      /* 判断消息 */
{
case GM_Create:/* 对象被创建后产生该消息,一般情况下,收到该消息时,
                对象还没有显示。可以在这里进行一些初始化工作。
                                如果是窗口的GM_Create消息,可以创建新的对象,如 BUTTON 等 */
          {
                  /* CreateObject 函数原型如下
          HAND GUIAPI CreatObject( - 函数返回新创建的对象句柄
          HAND pHOST,  - 父对象句柄
          int16 guiclass,  - 要创建的对象类型
          int16 id, - 对象的 ID
          int16 style, - 对象的风格
          char  *szTitle, - 对象的Title 标题
      int16 left,int16 top,int16 right,int16 bottom, - 对象的坐标
          void (*Server)(HAND,MESSAGE),void *pData); -对象的消息处理函数,附加数据指针
          */
                  CreateObject(hd,BUTTON,1,1,"MB_OK",10,50,210,75,0,0);
          CreateObject(hd,BUTTON,2,1,"MB_OKCANCEL",10,80,210,105,0,0);
          CreateObject(hd,BUTTON,3,1,"MB_YESNO",10,110,210,135,0,0);
          CreateObject(hd,BUTTON,4,1,"MB_YESNOCANCEL",10,140,210,165,0,0);

          }
          return;
default:return;
}
if(msg.type == GM_COMMAND)/* 按钮被按下后产生的消息 */
        switch(msg.message)/* message 为按钮的ID */
        {
        case 1:/* "MB_OK" 按钮 */
                MessageBox(hd,"Message","MB_OK",MB_OK);
        /* MessageBox 函数原型如下
                uint32 MessageBox(HAND hd,char *title,char *string,uint32 type);
                - hd 为父对象的句柄,一般为主窗口或者对话窗口的句柄
                - title 消息窗口的标题
        - string 消息窗口中的内容
                - type 消息窗口的类型
        目前支持如下四种(也是最常用的:)
            MB_OK   只有一个 OK(或 确定) 按钮
        MB_OKCANCEL 有OK(确定) 和 CANCEL(取消) 两个按钮
        MB_YESNOCANCEL 有YES(是),NO(否),CANCEL(取消) 三个按钮
        MB_YESNO 有YES(是),NO(否) 两个按钮
               
                函数返回:
                IDOK 按下OK(确定)按钮
                IDYES 按下YES(是)按钮
                IDNO 按下NO(否)按钮
                IDCANCEL 按下CANCEL(取消)按钮

                */

                return;
        case 2:/* "MB_OKCANCEL" 按钮 */
                i=MessageBox(hd,"Message","MB_OKCANCEL",MB_OKCANCEL);
            switch(i)
                {
                case IDOK:
                        return;
                case IDCANCEL:
                        return;
                default:return;
                }
                 
        case 3:/* "MB_YESNO" 按钮 */
                i=MessageBox(hd,"Message","MB_YESNO",MB_YESNO);
            switch(i)
                {
                case IDYES:
                        return;
                case IDNO:
                        return;
                default:
                        return;
                }
                 
        case 4:/* "MB_YESNOCANCEL" 按钮*/
                i=MessageBox(hd,"Message","MB_YESNOCANCEL",MB_YESNOCANCEL);
            switch(i)
                {
                case IDYES:
                        return;
                case IDNO:
                        return;
                case IDCANCEL:
                        return;
                default:return;
                }
                 
        default:return;
        }
}

int gmain(void *data) /* GUI程序 的入口函数 */
{
/* 创建一个主窗口 */
        CreatObject(0,MAINWINDOW,1,1,"MessageBox",10,10,400,300,MyWin,data);
        return True;
}

TOP

发新话题
最近访问的版块