Annotation of pmsdk/samples/msgbox/msgbox.c, revision 1.1.1.1

1.1       root        1: /*      msgbox.c  - Message box control sample application     */
                      2: /*      Created by Microsoft Corp., 1989                       */
                      3: /*                                                              */
                      4: #define INCL_WIN
                      5: #include <os2.h>
                      6: #include "msgbox.h"
                      7: 
                      8: /* Procedure prototypes */
                      9: MPARAM CALLBACK MsgBoxDlgProc(HWND, USHORT, MPARAM, MPARAM);
                     10: void cdecl main(void);
                     11: 
                     12: 
                     13: /* Main routine -- creates a dialog box window */
                     14: void cdecl main(void)
                     15: {
                     16:     HAB habMsgBox;
                     17:     HMQ hmqMsgBox;
                     18: 
                     19:     /* Initialize Anchor Block, Message Queue */
                     20:     habMsgBox = WinInitialize(NULL);
                     21:     hmqMsgBox = WinCreateMsgQueue(habMsgBox, 0);
                     22: 
                     23:     /* Summon the dialog box */
                     24:     WinDlgBox(HWND_DESKTOP, NULL, MsgBoxDlgProc, NULL, IDD_MSGBOX, NULL);
                     25: 
                     26:     /* Clean up */
                     27:     WinDestroyMsgQueue(hmqMsgBox);
                     28:     WinTerminate(habMsgBox);
                     29: }
                     30: 
                     31: /* Message box control routine */
                     32: MRESULT CALLBACK MsgBoxDlgProc(hWnd, msg, mp1, mp2)
                     33: HWND hWnd;
                     34: USHORT msg;
                     35: MPARAM mp1;
                     36: MPARAM mp2;
                     37: {
                     38:     USHORT flStyle;
                     39:     SHORT  rc;
                     40: 
                     41:     switch (msg) {
                     42:     case WM_COMMAND:
                     43:         switch (LOUSHORT(mp1)) {
                     44:         case DID_OK:
                     45:             WinDismissDlg(hWnd, TRUE);
                     46:             break;
                     47: 
                     48:        case IDD_SHOWBOX: /* Show Box */
                     49:            /* Buttons? */
                     50:            rc = (SHORT) WinSendDlgItemMsg(hWnd, IDD_OK0,
                     51:                    BM_QUERYCHECKINDEX, 0L, 0L);
                     52:            flStyle = (rc > 0) ? (USHORT) rc : 0;
                     53: 
                     54:            /* Icon style? */
                     55:            rc = (SHORT) WinSendDlgItemMsg(hWnd, IDD_ICON0,
                     56:                    BM_QUERYCHECKINDEX, 0L, 0L);
                     57:            if (rc > 0) flStyle = (flStyle & 0xff0f) | ((USHORT) rc << 4);
                     58: 
                     59:            /* Default style? */
                     60:            rc = (SHORT) WinSendDlgItemMsg(hWnd, IDD_DEF0,
                     61:                    BM_QUERYCHECKINDEX, 0L, 0L);
                     62:            if (rc > 0) flStyle = (flStyle & 0xf0ff) | ((USHORT) rc << 8);
                     63: 
                     64:             /* Get modality */
                     65:            if (WinSendDlgItemMsg(hWnd, IDD_SYSTEMMODAL, BM_QUERYCHECK, 0L, 0L))
                     66:                 flStyle |= MB_SYSTEMMODAL;
                     67: 
                     68:             /* Get help button attribute */
                     69:            if (WinSendDlgItemMsg(hWnd, IDD_HELP, BM_QUERYCHECK, 0L, 0L))
                     70:                 flStyle |= MB_HELP;
                     71: 
                     72:            /* Display the Message Box Type */
                     73:            WinSetDlgItemShort(hWnd, IDD_MSGBOXSTYLE, flStyle, FALSE);
                     74: 
                     75:            /* Pop up the message box */
                     76:            rc = WinMessageBox(HWND_DESKTOP, hWnd,
                     77:                     (PSZ)"Message Box Text Body\n(can contain several lines)",
                     78:                     (PSZ)"This is the title bar", 1, flStyle);
                     79: 
                     80:            /* Update the return code box */
                     81:            WinSetDlgItemShort(hWnd, IDD_RETURNCODE, rc, FALSE);
                     82:             break;
                     83: 
                     84:         default:
                     85:             break;
                     86:         }
                     87:         break;
                     88: 
                     89:     case WM_INITDLG: /* Push these three buttons */
                     90:        WinSendDlgItemMsg(hWnd,  IDD_OK0, BM_SETCHECK, (MPARAM) TRUE, 0L);
                     91:        WinSendDlgItemMsg(hWnd,IDD_ICON0, BM_SETCHECK, (MPARAM) TRUE, 0L);
                     92:        WinSendDlgItemMsg(hWnd, IDD_DEF0, BM_SETCHECK, (MPARAM) TRUE, 0L);
                     93:         break;
                     94: 
                     95:     default:
                     96:         return(WinDefDlgProc(hWnd, msg, mp1, mp2));
                     97:         break;
                     98:     }
                     99:     return 0L;
                    100: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.