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