Annotation of q_a/samples/locale/locale.c, revision 1.1

1.1     ! root        1: /**************************************************************************\
        !             2: *  locale.c -- sample program demonstrating the locale... APIs
        !             3: *
        !             4: *  In this sample the main window is a dialog box.  There is no need to
        !             5: *   register a new window class or create a new window.  Instead just call
        !             6: *   DialogBox() and use the template defined in the .RC file.  All of the
        !             7: *   interesting code is thus in the window procedure for the dialog box.
        !             8: *   In this case, simply respond to the combobox command messsages and fill
        !             9: *   the list box with appropriate values.
        !            10: *
        !            11: \**************************************************************************/
        !            12: 
        !            13: #define UNICODE
        !            14: 
        !            15: 
        !            16: #include <windows.h>
        !            17: #include "locale.h"
        !            18: 
        !            19: 
        !            20: /**************************************************************************\
        !            21: *
        !            22: *  function:  WinMain()
        !            23: *
        !            24: *  input parameters:  c.f. generic sample
        !            25: *
        !            26: \**************************************************************************/
        !            27: int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
        !            28:                      LPSTR lpCmdLine, int nCmdShow)
        !            29: {
        !            30: int ret;
        !            31: 
        !            32:     UNREFERENCED_PARAMETER( hPrevInstance );
        !            33:     UNREFERENCED_PARAMETER( lpCmdLine );
        !            34:     UNREFERENCED_PARAMETER( nCmdShow);
        !            35: 
        !            36:     ret = DialogBox (hInstance, TEXT("localeDlg"), NULL, (DLGPROC)MainDlgProc);
        !            37:     return ret;
        !            38: }
        !            39: 
        !            40: 
        !            41: 
        !            42: /**************************************************************************\
        !            43: *
        !            44: *  function:  MainDlgProc()
        !            45: *
        !            46: *  input parameters:  standard window procedure parameters.
        !            47: *
        !            48: \**************************************************************************/
        !            49: LRESULT MainDlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
        !            50: {
        !            51: int i;
        !            52: TCHAR buffer[MAXTCHAR];
        !            53: 
        !            54:   UNREFERENCED_PARAMETER(lParam);
        !            55: 
        !            56: 
        !            57:   switch (message) {
        !            58: 
        !            59:     /********************************************************************\
        !            60:     * WM_SYSCOMMAND
        !            61:     *
        !            62:     * ignore all syscommand messages, except for SC_CLOSE.
        !            63:     *  on this one, call EndDialog().
        !            64:     \********************************************************************/
        !            65:     case WM_SYSCOMMAND:
        !            66:       if (wParam == SC_CLOSE) {
        !            67:         EndDialog (hwnd, TRUE);
        !            68:         return TRUE;
        !            69:       } else
        !            70:         return FALSE;
        !            71:     break;
        !            72: 
        !            73:     /********************************************************************\
        !            74:     * WM_INITDIALOG
        !            75:     *
        !            76:     * Fill the combobox with the language, sublanguage pairs.
        !            77:     *
        !            78:     \********************************************************************/
        !            79:     case WM_INITDIALOG:
        !            80:       for (i = 0; i < NLANG; i++) {
        !            81: 
        !            82:         SendDlgItemMessage (hwnd, DID_COMBOBOX, CB_ADDSTRING, 0,
        !            83:             (LPARAM)langstrings[i].String);
        !            84:       }
        !            85: //      SendDlgItemMessage (hwnd, DID_COMBOBOX, CB_SHOWDROPDOWN, (WPARAM) TRUE, 0);
        !            86:     return NULL;
        !            87: 
        !            88: 
        !            89: 
        !            90:     /********************************************************************\
        !            91:     * WM_COMMAND
        !            92:     *
        !            93:     * When the different languages are selected, clear the list box,
        !            94:     *  then fill it up again with the new information.
        !            95:     *
        !            96:     \********************************************************************/
        !            97:     case WM_COMMAND:
        !            98:       if ((HIWORD(wParam) == CBN_SELCHANGE) && (LOWORD(wParam) == DID_COMBOBOX)) {
        !            99:         int iSel;
        !           100:         TCHAR linfo[MAXTCHAR];
        !           101: 
        !           102:         iSel = SendMessage ((HWND) lParam, CB_GETCURSEL, 0,0);
        !           103:         SendDlgItemMessage (hwnd, DID_LISTBOX, LB_RESETCONTENT, 0, 0);
        !           104: 
        !           105:         for (i = 0; i < NLOCALEENTRIES; i++) {
        !           106:           linfo[0] = 0;
        !           107:           GetLocaleInfoW (MAKELCID (langstrings[iSel].Value),
        !           108:                   localeentry[i].Value, linfo, MAXTCHAR);
        !           109: 
        !           110:           wsprintf (buffer, TEXT("%s \t %s"), localeentry[i].String, linfo);
        !           111: 
        !           112:           SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LPARAM)buffer);
        !           113:         }
        !           114: 
        !           115:       }
        !           116:     break; /* end WM_COMMAND */
        !           117: 
        !           118: 
        !           119:     default: return FALSE;
        !           120:   } /* end switch(message) */
        !           121: }

unix.superglobalmegacorp.com

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