MOOC清华《VC++面向对象与可视化程序设计》第5章:对话框资源例程(模态对话框样例)

来源:互联网 发布:java api全部包类 编辑:程序博客网 时间:2024/06/05 23:56
#include <windows.h>                      #include "001.h"HINSTANCE hInst;LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);BOOL CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow){HWND hwnd ;MSG Msg ;HACCEL hAccel;WNDCLASS wndclass ;    char lpszMenuName[]="Menu";    char lpszClassName[] = "模态对话框";     char lpszTitle[]= "模态对话框样例";    wndclass.style = 0;                       wndclass.lpfnWndProc = WndProc ;    wndclass.cbClsExtra= 0 ;          wndclass.cbWndExtra= 0 ;          wndclass.hInstance = hInstance ;       wndclass.hIcon = LoadIcon( NULL, IDI_APPLICATION) ;       wndclass.hCursor = LoadCursor( NULL, IDC_ARROW) ;       wndclass.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH) ;   wndclass.lpszMenuName =  lpszMenuName ;                       wndclass.lpszClassName = lpszClassName ;                      if( !RegisterClass( &wndclass))           {   MessageBeep(0) ;   return FALSE ;     }hwnd = CreateWindow(lpszClassName,         lpszTitle,         WS_OVERLAPPEDWINDOW,       CW_USEDEFAULT,                      CW_USEDEFAULT,                        CW_USEDEFAULT,                        CW_USEDEFAULT,    NULL,       NULL,      hInstance,    NULL);      ShowWindow( hwnd, nCmdShow) ;UpdateWindow(hwnd); hInst=hInstance;hAccel=LoadAccelerators(hInst,lpszMenuName);      while( GetMessage(&Msg, NULL, 0, 0)) {       if (!TranslateAccelerator(hwnd,hAccel,&Msg))      {   TranslateMessage( &Msg) ;   DispatchMessage( &Msg) ;       }  }return Msg.wParam;      }    LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM  wParam,LPARAM  lParam){switch(message){    case WM_COMMAND:switch(LOWORD(wParam))  {case IDM_OPEN://打开文件操作        //文件打开成功则显示消息框       MessageBox(hwnd,"文件已经打开!","文件打开",MB_OK);       break;   case IDM_SAVE://存储操作        //文件保存成功则显示消息框       MessageBox(hwnd,"文件保存成功!","文件保存",MB_OK);break;   case IDM_EXIT:      SendMessage(hwnd,WM_DESTROY,0,0);        break;   case IDM_ABOUT:   //创建对话框DialogBox(hInst,"About",hwnd,(DLGPROC)DlgProc);break; }             break;case WM_DESTROY:             PostQuitMessage(0);      break;           default:                       return  DefWindowProc(hwnd,message,wParam,lParam); } return 0;}//对话框窗口处理函数BOOL CALLBACK DlgProc(HWND hdlg,UINT message,WPARAM wParam,LPARAM lParam){ switch(message)   {case WM_INITDIALOG:     //初始化对话框 return 1; case WM_COMMAND: //处理对话框消息     switch (LOWORD(wParam))   {case IDOK:              //关闭对话框                EndDialog(hdlg,0) ;}break ;    case WM_CLOSE:        EndDialog(hdlg, 0) ;    break ;    }    return 0;}  


#define IDM_OPEN 11#define IDM_SAVE 13#define IDM_EXIT 15#define IDM_ABOUT 20

    #include <windows.h>     #include "001.h"     Menu MENU DISCARDABLE       {         POPUP "文件(&F)"         {             MENUITEM "打开(&O)\t Ctrl+O",     IDM_OPEN          MENUITEM SEPARATOR                                     MENUITEM "保存(&S)\t Ctrl+S",     IDM_SAVE          MENUITEM SEPARATOR                                     MENUITEM "退出(&X)",              IDM_EXIT          }      POPUP "帮助(&H)"        {         MENUITEM "关于(&A)...",          IDM_ABOUT        }      }       Menu ACCELERATORS       {       "^O",             IDM_OPEN                         "^S",             IDM_SAVE                      }    About DIALOG  10, 10, 100, 50    STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU     CAPTION "关于"     FONT 18, "楷体"  //定义对话框中的文本字体类型及大小        {         CTEXT           "Windows模态对话框",-1,13,10,80,10         DEFPUSHBUTTON   "确定",IDOK,35,30,30,12        }


阅读全文
0 0