|
|
1.1 ! root 1: /*----------------------------------------------------------- ! 2: ABOUTBOX.C -- Demonstration of About Box Dialog Procedure ! 3: -----------------------------------------------------------*/ ! 4: ! 5: #define INCL_WIN ! 6: #include <os2.h> ! 7: #include "aboutbox.h" ! 8: ! 9: MRESULT EXPENTRY ClientWndProc (HWND, USHORT, MPARAM, MPARAM) ; ! 10: MRESULT EXPENTRY AboutDlgProc (HWND, USHORT, MPARAM, MPARAM) ; ! 11: ! 12: int main (void) ! 13: { ! 14: static CHAR szClientClass[] = "AboutBox" ; ! 15: static ULONG flFrameFlags = FCF_TITLEBAR | FCF_SYSMENU | ! 16: FCF_SIZEBORDER | FCF_MINMAX | ! 17: FCF_SHELLPOSITION | FCF_TASKLIST | ! 18: FCF_MENU | FCF_ICON ; ! 19: HAB hab ; ! 20: HMQ hmq ; ! 21: HWND hwndFrame, hwndClient ; ! 22: QMSG qmsg ; ! 23: ! 24: hab = WinInitialize (0) ; ! 25: hmq = WinCreateMsgQueue (hab, 0) ; ! 26: ! 27: WinRegisterClass (hab, szClientClass, ClientWndProc, 0L, 0) ; ! 28: ! 29: hwndFrame = WinCreateStdWindow (HWND_DESKTOP, WS_VISIBLE, ! 30: &flFrameFlags, szClientClass, NULL, ! 31: 0L, NULL, ID_RESOURCE, &hwndClient) ; ! 32: ! 33: while (WinGetMsg (hab, &qmsg, NULL, 0, 0)) ! 34: WinDispatchMsg (hab, &qmsg) ; ! 35: ! 36: WinDestroyWindow (hwndFrame) ; ! 37: WinDestroyMsgQueue (hmq) ; ! 38: WinTerminate (hab) ; ! 39: return 0 ; ! 40: } ! 41: ! 42: MRESULT EXPENTRY ClientWndProc (HWND hwnd, USHORT msg, MPARAM mp1, MPARAM mp2) ! 43: { ! 44: switch (msg) ! 45: { ! 46: case WM_COMMAND: ! 47: switch (COMMANDMSG(&msg)->cmd) ! 48: { ! 49: case IDM_NEW: ! 50: case IDM_OPEN: ! 51: case IDM_SAVE: ! 52: case IDM_SAVEAS: ! 53: WinAlarm (HWND_DESKTOP, WA_NOTE) ; ! 54: return 0 ; ! 55: ! 56: case IDM_ABOUT: ! 57: WinDlgBox (HWND_DESKTOP, hwnd, AboutDlgProc, ! 58: NULL, IDD_ABOUT, NULL) ; ! 59: return 0 ; ! 60: } ! 61: break ; ! 62: ! 63: case WM_ERASEBACKGROUND: ! 64: return 1 ; ! 65: } ! 66: return WinDefWindowProc (hwnd, msg, mp1, mp2) ; ! 67: } ! 68: ! 69: MRESULT EXPENTRY AboutDlgProc (HWND hwnd, USHORT msg, MPARAM mp1, MPARAM mp2) ! 70: { ! 71: switch (msg) ! 72: { ! 73: case WM_COMMAND: ! 74: switch (COMMANDMSG(&msg)->cmd) ! 75: { ! 76: case DID_OK: ! 77: case DID_CANCEL: ! 78: WinDismissDlg (hwnd, TRUE) ; ! 79: return 0 ; ! 80: } ! 81: break ; ! 82: } ! 83: return WinDefDlgProc (hwnd, msg, mp1, mp2) ; ! 84: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.