//^WS_THICKFRAME 禁止拖动边框
HWND hWnd = CreateWindow(g_szAppWindowClass, g_szAppTitle, WS_OVERLAPPEDWINDOW ^ WS_THICKFRAME,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
// 处理主窗口的消息。
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
UINT wmId;
UINT wmEvent;
HDC hdc;
PAINTSTRUCT ps;
LPMINMAXINFO lpMinMaxInfo;
switch (nMsg) {
case WM_COMMAND://用户菜单命令
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
switch (wmId) {
case IDM_ABOUT:
DialogBox(g_hAppInstance, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, nMsg, wParam, lParam);
}
break;
case WM_KEYDOWN://按键消息
if(wParam == VK_F1)//F1键
{
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
OnPaint(hdc);
EndPaint(hWnd, &ps);
break;
case WM_SYSCOMMAND://系统菜单命令:最大化按钮,最小化按,复原按钮,关闭按钮;与用户菜单命令WM_COMMAND有区别哦
if (wParam == SC_RESTORE)//复原按钮
{
wParam = SC_MAXIMIZE;
}
if (wParam == SC_CLOSE)//关闭按钮
{
if(g_GameMainPage.m_GameMainWnd.m_bOutputCardStarted)
{
if (IDCANCEL == MessageBox(hWnd,L"游戏正在进行,若退出则会扣分!!!",L"关闭",MB_OKCANCEL))
{
return 0;
}
else
{
//别的操作
}
}
}
DefWindowProc(hWnd, nMsg, wParam, lParam);
break;
case WM_NCRBUTTONDOWN://在非工作区按下右键
case WM_NCLBUTTONDBLCLK://在非工作区双击右击
return 0;
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_TIMER:
OnTimer(wParam, lParam);
break;
default:
return DefWindowProc(hWnd, nMsg, wParam, lParam);
}
return 0;
}
/* MessageBox()的返回值有:
#define IDOK 1
#define IDCANCEL 2
#define IDABORT 3
#define IDRETRY 4
#define IDIGNORE 5
#define IDYES 6
#define IDNO 7
#if(WINVER >= 0x0400)
#define IDCLOSE 8
#define IDHELP 9
*/