#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
}