Windows 编程[9] - WM_CLOSE 消息
生活随笔
收集整理的這篇文章主要介紹了
Windows 编程[9] - WM_CLOSE 消息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本例效果圖:
program Project1;usesWindows, Messages;{供 WM_CLOSE 消息調用的自定義過程}
procedure OnClose(h: HWND);
beginif IDOK = MessageBox(h, '確認關閉嗎?', '提示', MB_OKCANCEL) thenDestroyWindow(h);
end;function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall;
beginResult := 0;case msg ofWM_CLOSE : OnClose(wnd); {在收到 WM_CLOSE 消息時調用自定義的 OnClose 過程}WM_DESTROY: PostQuitMessage(0);elseResult := DefWindowProc(wnd, msg, wParam, lParam);end;
end;function RegMyWndClass: Boolean;
varcls: TWndClass;
begincls.style := CS_HREDRAW or CS_VREDRAW;cls.lpfnWndProc := @WndProc;cls.cbClsExtra := 0;cls.cbWndExtra := 0;cls.hInstance := HInstance;cls.hIcon := 0;cls.hCursor := LoadCursor(0, IDC_ARROW);cls.hbrBackground := HBRUSH(COLOR_WINDOW + 1);cls.lpszMenuName := nil;cls.lpszClassName := 'MyWnd';Result := RegisterClass(cls) <> 0;
end;{程序入口}
consttit = 'New Form';ws = WS_OVERLAPPEDWINDOW;x = 100; y = 100; w = 300; h = 180;
varhWnd: THandle;Msg : TMsg;
beginRegMyWndClass;hWnd := CreateWindow('MyWnd', tit, ws, x, y, w, h, 0, 0, HInstance, nil);ShowWindow(hWnd, SW_SHOWNORMAL);UpdateWindow(hWnd);while(GetMessage(Msg, 0, 0, 0)) dobeginTranslateMessage(Msg);DispatchMessage(Msg);end;
end.
轉載于:https://www.cnblogs.com/del/archive/2008/04/18/1160505.html
總結
以上是生活随笔為你收集整理的Windows 编程[9] - WM_CLOSE 消息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 'or'='or'经典漏洞原理分析
- 下一篇: Lession 15 Good news