• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            coreBugZJ

            此 blog 已棄。

            對話框,光標,字符串,位圖——Windows編程上機作業之三

             

            1.光標

                通過菜單選擇使用ARROWWAIT和一個自定義光標。

            2.位圖

                 設計五個位圖。

            3.對話框

                設計一個模式對話框,復選五個位圖的顯示。

                設計一個無模式對話框,單選五個位圖中的一個進行顯示。

                設計一個打開文件通用對話框,通過消息框顯示獲取的文件名。

            4.字符串

                在客戶區和標題欄顯示的文字采用字符串資源定義的方法。所顯示的文字信息不在程序中出現。

            5.中英文菜單切換

                將菜單項的顯示文字定義為字符串資源或通過菜單整體切換

             














            resource.h
             1//{{NO_DEPENDENCIES}}
             2// Microsoft Visual C++ generated include file.
             3// Used by WinZJ.rc
             4//
             5#define IDI_WINZJ                       101
             6#define IDC_WINZJ                       102
             7#define IDA_WINZJ                       103
             8#define IDM_WINZJ_CH                    104
             9#define IDM_WINZJ_EN                    105
            10#define IDS_APPNAME_CH                  106
            11#define IDS_APPNAME_EN                  107
            12#define IDS_WNDCLASSNAME                108
            13#define IDS_CURSOR_PREFIX_CH            109
            14#define IDS_CURSOR_PREFIX_EN            110
            15#define IDS_CURSOR_ARROW                111
            16#define IDS_CURSOR_WAIT                 112
            17#define IDS_CURSOR_USER_CH              113
            18#define IDS_CURSOR_USER_EN              114
            19#define IDD_CHECK                       115
            20#define IDB_A                           116
            21#define IDB_B                           117
            22#define IDB_C                           118
            23#define IDB_D                           119
            24#define IDB_E                           120
            25#define IDD_RADIO                       121
            26#define IDC_CHECK1                      1001
            27#define IDC_CHECK2                      1002
            28#define IDC_CHECK3                      1003
            29#define IDC_CHECK4                      1004
            30#define IDC_CHECK5                      1005
            31#define IDC_RADIO1                      1006
            32#define IDC_RADIO2                      1007
            33#define IDC_RADIO3                      1008
            34#define IDC_RADIO4                      1009
            35#define IDC_RADIO5                      1010
            36#define IDM_EXIT                        40001
            37#define IDM_MODAL                       40002
            38#define IDM_MODALLESS                   40003
            39#define IDM_FILE                        40004
            40#define IDM_ARROW                       40005
            41#define IDM_WAIT                        40006
            42#define IDM_USER                        40007
            43#define IDM_CHINESE                     40008
            44#define IDM_ENGLISH                     40009
            45#define IDM_INFO                        40010
            46
            47// Next default values for new objects
            48// 
            49#ifdef APSTUDIO_INVOKED
            50#ifndef APSTUDIO_READONLY_SYMBOLS
            51#define _APS_NEXT_RESOURCE_VALUE        122
            52#define _APS_NEXT_COMMAND_VALUE         40011
            53#define _APS_NEXT_CONTROL_VALUE         1011
            54#define _APS_NEXT_SYMED_VALUE           101
            55#endif
            56#endif
            57


            WinZJ.rc
              1// Microsoft Visual C++ generated resource script.
              2//
              3#include "resource.h"
              4
              5#define APSTUDIO_READONLY_SYMBOLS
              6/////////////////////////////////////////////////////////////////////////////
              7//
              8// Generated from the TEXTINCLUDE 2 resource.
              9//
             10#include "afxres.h"
             11
             12/////////////////////////////////////////////////////////////////////////////
             13#undef APSTUDIO_READONLY_SYMBOLS
             14
             15/////////////////////////////////////////////////////////////////////////////
             16// Chinese (Simplified, PRC) resources
             17
             18#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
             19LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
             20
             21#ifdef APSTUDIO_INVOKED
             22/////////////////////////////////////////////////////////////////////////////
             23//
             24// TEXTINCLUDE
             25//
             26
             271 TEXTINCLUDE 
             28BEGIN
             29    "resource.h\0"
             30END
             31
             322 TEXTINCLUDE 
             33BEGIN
             34    "#include ""afxres.h""\r\n"
             35    "\0"
             36END
             37
             383 TEXTINCLUDE 
             39BEGIN
             40    "\r\n"
             41    "\0"
             42END
             43
             44#endif    // APSTUDIO_INVOKED
             45
             46
             47/////////////////////////////////////////////////////////////////////////////
             48//
             49// Icon
             50//
             51
             52// Icon with lowest ID value placed first to ensure application icon
             53// remains consistent on all systems.
             54IDI_WINZJ               ICON                    "WinZJ.ico"
             55
             56/////////////////////////////////////////////////////////////////////////////
             57//
             58// Menu
             59//
             60
             61IDM_WINZJ_CH MENU
             62BEGIN
             63    POPUP "文件(&F)"
             64    BEGIN
             65        MENUITEM "退出(&X)",                      IDM_EXIT
             66    END
             67    POPUP "對話框(&O)"
             68    BEGIN
             69        MENUITEM "打開模式對話框(&M)\tCtrl+A",      IDM_MODAL
             70        MENUITEM "打開無模式對話框(&L)\tCtrl+B",     IDM_MODALLESS
             71        MENUITEM "打開文件對話框(&F)\tCtrl+C",      IDM_FILE
             72    END
             73    POPUP "光標類型(&C)"
             74    BEGIN
             75        MENUITEM "光標&1(ARROW)\tCtrl+1",         IDM_ARROW
             76        MENUITEM "光標&2(WAIT)\tCtrl+2",          IDM_WAIT
             77        MENUITEM "光標&3(User)\tCtrl+3",          IDM_USER
             78    END
             79    POPUP "語言(&L)"
             80    BEGIN
             81        MENUITEM "中文(&C)\tCtrl+Shift+C",        IDM_CHINESE
             82        MENUITEM "&English\tCtrl+Shift+D",      IDM_ENGLISH
             83    END
             84    POPUP "關于(&A)"
             85    BEGIN
             86        MENUITEM "程序信息(&I)\tF1",                IDM_INFO
             87    END
             88END
             89
             90
             91/////////////////////////////////////////////////////////////////////////////
             92//
             93// Cursor
             94//
             95
             96IDC_WINZJ               CURSOR                  "WinZJ.cur"
             97
             98/////////////////////////////////////////////////////////////////////////////
             99//
            100// Accelerator
            101//
            102
            103IDA_WINZJ ACCELERATORS
            104BEGIN
            105    VK_F1,          IDM_INFO,               VIRTKEY, NOINVERT
            106    "A",            IDM_MODAL,              VIRTKEY, CONTROL, NOINVERT
            107    "B",            IDM_MODALLESS,          VIRTKEY, CONTROL, NOINVERT
            108    "C",            IDM_FILE,               VIRTKEY, CONTROL, NOINVERT
            109    "1",            IDM_ARROW,              VIRTKEY, CONTROL, NOINVERT
            110    "2",            IDM_WAIT,               VIRTKEY, CONTROL, NOINVERT
            111    "3",            IDM_USER,               VIRTKEY, CONTROL, NOINVERT
            112    "C",            IDM_CHINESE,            VIRTKEY, SHIFT, CONTROL, NOINVERT
            113    "D",            IDM_ENGLISH,            VIRTKEY, SHIFT, CONTROL, NOINVERT
            114END
            115
            116
            117/////////////////////////////////////////////////////////////////////////////
            118//
            119// Dialog
            120//
            121
            122IDD_CHECK DIALOGEX 5050185142
            123STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION
            124CAPTION "復選顯示位圖選擇"
            125FONT 8"MS Shell Dlg"40000x1
            126BEGIN
            127    DEFPUSHBUTTON   "確定",IDOK,128,15,50,14
            128    PUSHBUTTON      "取消",IDCANCEL,128,44,50,14
            129    CONTROL         "復選位圖 1",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,31,26,54,10
            130    CONTROL         "復選位圖 2",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,31,46,54,10
            131    CONTROL         "復選位圖 3",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,31,66,54,10
            132    CONTROL         "復選位圖 4",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,31,86,54,10
            133    CONTROL         "復選位圖 5",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,31,106,54,10
            134END
            135
            136IDD_RADIO DIALOGEX 5050185142
            137STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION
            138CAPTION "單選顯示位圖選擇"
            139FONT 8"MS Shell Dlg"40000x1
            140BEGIN
            141    DEFPUSHBUTTON   "確定",IDOK,128,15,50,14
            142    PUSHBUTTON      "取消",IDCANCEL,128,44,50,14
            143    CONTROL         "單選位圖 1",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON,31,26,54,10
            144    CONTROL         "單選位圖 2",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,31,46,54,10
            145    CONTROL         "單選位圖 3",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON,31,66,54,10
            146    CONTROL         "單選位圖 4",IDC_RADIO4,"Button",BS_AUTORADIOBUTTON,31,86,54,10
            147    CONTROL         "單選位圖 5",IDC_RADIO5,"Button",BS_AUTORADIOBUTTON,31,106,54,10
            148END
            149
            150
            151/////////////////////////////////////////////////////////////////////////////
            152//
            153// DESIGNINFO
            154//
            155
            156#ifdef APSTUDIO_INVOKED
            157GUIDELINES DESIGNINFO
            158BEGIN
            159    IDD_CHECK, DIALOG
            160    BEGIN
            161        LEFTMARGIN, 7
            162        RIGHTMARGIN, 178
            163        TOPMARGIN, 7
            164        BOTTOMMARGIN, 135
            165    END
            166
            167    IDD_RADIO, DIALOG
            168    BEGIN
            169        LEFTMARGIN, 7
            170        RIGHTMARGIN, 178
            171        TOPMARGIN, 7
            172        BOTTOMMARGIN, 135
            173    END
            174END
            175#endif    // APSTUDIO_INVOKED
            176
            177
            178/////////////////////////////////////////////////////////////////////////////
            179//
            180// Bitmap
            181//
            182
            183IDB_A                   BITMAP                  "bmpA.bmp"
            184IDB_B                   BITMAP                  "bmpB.bmp"
            185IDB_C                   BITMAP                  "bmpC.bmp"
            186IDB_D                   BITMAP                  "bmpD.bmp"
            187IDB_E                   BITMAP                  "bmpE.bmp"
            188
            189/////////////////////////////////////////////////////////////////////////////
            190//
            191// String Table
            192//
            193
            194STRINGTABLE
            195BEGIN
            196    IDS_APPNAME_CH          "第三次作業"
            197    IDS_APPNAME_EN          "My Work 3"
            198    IDS_WNDCLASSNAME        "WinZJ"
            199    IDS_CURSOR_PREFIX_CH    "當前使用的光標是:"
            200    IDS_CURSOR_PREFIX_EN    "The current cursor is : "
            201    IDS_CURSOR_ARROW        "IDC_ARROW"
            202END
            203
            204STRINGTABLE
            205BEGIN
            206    IDS_CURSOR_WAIT         "IDC_WAIT"
            207    IDS_CURSOR_USER_CH      "我畫的光標"
            208    IDS_CURSOR_USER_EN      "MY CURSOR"
            209END
            210
            211#endif    // Chinese (Simplified, PRC) resources
            212/////////////////////////////////////////////////////////////////////////////
            213
            214
            215/////////////////////////////////////////////////////////////////////////////

            216// English resources
            217
            218#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
            219LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
            220
            221/////////////////////////////////////////////////////////////////////////////
            222//
            223// Menu
            224//
            225
            226IDM_WINZJ_EN MENU
            227BEGIN
            228    POPUP "&File"
            229    BEGIN
            230        MENUITEM "E&xit",                       IDM_EXIT
            231    END
            232    POPUP "&OpenDialog"
            233    BEGIN
            234        MENUITEM "Open &Modal Dialog\tCtrl+A",  IDM_MODAL
            235        MENUITEM "Open Modal&Less Dialog\tCtrl+B", IDM_MODALLESS
            236        MENUITEM "Open &File Dialog\tCtrl+C",   IDM_FILE
            237    END
            238    POPUP "&Cursor"
            239    BEGIN
            240        MENUITEM "Cursor&1(ARROW)\tCtrl+1",     IDM_ARROW
            241        MENUITEM "Cursor&2(WAIT)\tCtrl+2",      IDM_WAIT
            242        MENUITEM "Cursor&3(User)\tCtrl+3",      IDM_USER
            243    END
            244    POPUP "&Language"
            245    BEGIN
            246        MENUITEM "中文(&C)\tCtrl+Shift+C",        IDM_CHINESE
            247        MENUITEM "&English\tCtrl+Shift+D",      IDM_ENGLISH
            248    END
            249    POPUP "&About"
            250    BEGIN
            251        MENUITEM "Program &Information\tF1",    IDM_INFO
            252    END
            253END
            254
            255#endif    // English resources
            256/////////////////////////////////////////////////////////////////////////////
            257
            258
            259
            260#ifndef APSTUDIO_INVOKED
            261/////////////////////////////////////////////////////////////////////////////
            262//
            263// Generated from the TEXTINCLUDE 3 resource.
            264//
            265
            266
            267/////////////////////////////////////////////////////////////////////////////
            268#endif    // not APSTUDIO_INVOKED
            269
            270


            WinZJ.cpp
              1// 資源就不釋放了,系統自己回收。
              2
              3#include <Windows.h>
              4#include <string.h>
              5#include "resource.h"
              6
              7
              8#define STR_BUF_MAX  1024
              9
             10
             11BOOL bCheck[ 5 ] = 0 };
             12TCHAR szWndClassName[ STR_BUF_MAX ];
             13HWND  hDlgLess = NULL;
             14INT   iRadioSelector = 0;
             15
             16
             17LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM );
             18INT_PTR CALLBACK DlgProc( HWND, UINT, WPARAM, LPARAM );
             19BOOL  CALLBACK DlgLessProc( HWND, UINT, WPARAM, LPARAM );
             20
             21
             22int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow) {
             23        LoadString( hInst, IDS_WNDCLASSNAME, szWndClassName, STR_BUF_MAX );
             24
             25        WNDCLASSEX wc;
             26        wc.cbClsExtra    = 0;
             27        wc.cbSize        = sizeof(wc);
             28        wc.cbWndExtra    = 0;
             29        wc.hbrBackground = (HBRUSH)::GetStockObject( WHITE_BRUSH );
             30        wc.hCursor       = NULL;
             31        wc.hIcon         = ::LoadIcon( hInst, MAKEINTRESOURCE(IDI_WINZJ) );
             32        wc.hIconSm       = ::LoadIcon( hInst, MAKEINTRESOURCE(IDI_WINZJ) );
             33        wc.hInstance     = hInst;
             34        wc.lpfnWndProc   = WndProc;
             35        wc.lpszClassName = szWndClassName;
             36        wc.lpszMenuName  = NULL;
             37        wc.style         = CS_HREDRAW | CS_VREDRAW;
             38
             39        ::RegisterClassEx( &wc );
             40
             41        HWND hWnd = ::CreateWindowEx( 0, szWndClassName, TEXT(""), 
             42                WS_OVERLAPPEDWINDOW, 
             43                100100800600
             44                NULL, NULL, wc.hInstance, NULL );
             45
             46        ::ShowWindow( hWnd,nCmdShow );
             47        ::UpdateWindow( hWnd );
             48
             49        HACCEL hAccel = ::LoadAccelerators( hInst, MAKEINTRESOURCE(IDA_WINZJ) );
             50        MSG msg;
             51        while ( ::GetMessage( &msg, NULL, 00 ) ) {
             52                if ( (::IsWindow(hDlgLess)) && (::IsDialogMessage(hDlgLess,&msg)) ) {
             53                        continue;
             54                }

             55                if ( ! ::TranslateAccelerator( hWnd, hAccel, &msg ) ) {
             56                        ::TranslateMessage( &msg );
             57                        ::DispatchMessage( &msg );
             58                }

             59        }

             60        return msg.wParam;
             61}

             62
             63
             64LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) {
             65        HDC hdc, hdcMem;
             66        PAINTSTRUCT ps;
             67        HMENU hMenu;
             68        RECT  rt;
             69        POINT pt;
             70        int i;
             71
             72        OPENFILENAME ofn;
             73        TCHAR szPath[ STR_BUF_MAX ], szFile[ STR_BUF_MAX ];
             74
             75        HBITMAP hbmpOld;
             76
             77        static HINSTANCE hInst;
             78        static INT iLangSelector;  // Base--Chinese,  0--Chinese,  1--English
             79        static HCURSOR hCursor[ 3 ];
             80        static INT iCursorSelector; // Base--Arrow, 0--Arrow, 1-Wait, 2--User
             81        static TCHAR szText[ STR_BUF_MAX ];
             82        static TCHAR szCursor[3][ STR_BUF_MAX ];
             83        static HBITMAP hBmp[ 5 ];
             84
             85        switch ( uMsg ) {
             86        case WM_CREATE : 
             87                hInst = ((LPCREATESTRUCT)lParam)->hInstance;
             88
             89                hCursor[ 0 ] = ::LoadCursor( NULL, IDC_ARROW );
             90                hCursor[ 1 ] = ::LoadCursor( NULL, IDC_WAIT );
             91                hCursor[ 2 ] = ::LoadCursor( hInst, MAKEINTRESOURCE(IDC_WINZJ) );
             92
             93                for ( i = IDB_A; i <= IDB_E; ++i ) {
             94                        hBmp[ i-IDB_A ] = ::LoadBitmap( hInst, MAKEINTRESOURCE(i) );
             95                }

             96
             97                ::LoadString( hInst, IDS_CURSOR_ARROW, szCursor[ 0 ], STR_BUF_MAX );
             98                ::LoadString( hInst, IDS_CURSOR_WAIT,  szCursor[ 1 ], STR_BUF_MAX );
             99
            100                iCursorSelector = 0// arrow
            101                ::SendMessage( hWnd, WM_COMMAND, IDM_CHINESE, 0 );
            102                return 0;
            103
            104        case WM_PAINT : 
            105                hdc = ::BeginPaint( hWnd, &ps );
            106
            107                ::LoadString( hInst, IDS_CURSOR_PREFIX_CH+iLangSelector, szText, STR_BUF_MAX );
            108                lstrcat( szText, szCursor[iCursorSelector] );
            109                ::TextOut( hdc, 5010, szText, lstrlen(szText) );
            110
            111                hdcMem = ::CreateCompatibleDC( hdc );
            112
            113                for ( i = 0; i < 5++i ) {
            114                        if ( bCheck[ i ] ) {
            115                                hbmpOld = (HBITMAP)::SelectObject( hdcMem, hBmp[ i ] );
            116                                ::BitBlt( hdc, 50, i*110+50130110
            117                                        hdcMem, 00, SRCCOPY );
            118                                ::SelectObject( hdcMem, hbmpOld );
            119                        }

            120                }

            121                hbmpOld = (HBITMAP)::SelectObject( hdcMem, hBmp[ iRadioSelector ] );
            122                ::BitBlt( hdc, 200100130110
            123                        hdcMem, 00, SRCCOPY );
            124                ::SelectObject( hdcMem, hbmpOld );
            125
            126                ::DeleteDC( hdcMem );
            127
            128                ::EndPaint( hWnd, &ps );
            129                return 0;
            130
            131        case WM_DESTROY : 
            132                ::PostQuitMessage( 0 );
            133                return 0;
            134
            135        case WM_SETCURSOR : 
            136                ::GetClientRect( hWnd, &rt );
            137                ::GetCursorPos( &pt );
            138                ::ScreenToClient( hWnd, &pt );
            139                if ( (rt.left<=pt.x) && (pt.x<rt.right) && (rt.top<=pt.y) && (pt.y<rt.bottom) ) {
            140                        ::SetCursor( hCursor[ iCursorSelector ] );
            141                        return 0;
            142                }

            143                break;
            144
            145        case WM_COMMAND : 
            146                hMenu = ::GetMenu( hWnd );
            147                switch ( LOWORD(wParam) ) {
            148                case IDM_EXIT : 
            149                        ::DestroyWindow( hWnd );
            150                        return 0;
            151
            152                case IDM_MODAL : 
            153                        if ( IDOK == ::DialogBox( hInst, MAKEINTRESOURCE(IDD_CHECK), hWnd, DlgProc ) ) {
            154                                ::InvalidateRect( hWnd, NULL, TRUE );
            155                        }

            156                        return 0;
            157                case IDM_MODALLESS : 
            158                        if ( ! ::IsWindow( hDlgLess ) ) {
            159                                hDlgLess = ::CreateDialog( hInst, MAKEINTRESOURCE(IDD_RADIO), hWnd, DlgLessProc );
            160                                ::ShowWindow( hDlgLess, SW_SHOW );
            161                        }

            162                        return 0;
            163                case IDM_FILE : 
            164                        memset( &ofn, 0sizeof(ofn) );
            165                        ofn.lStructSize = sizeof(ofn);
            166                        ofn.hInstance  = hInst;
            167                        ofn.hwndOwner = hWnd;
            168                        ofn.lpstrFilter = TEXT("All Files(*.*)\0*.*\0Text Files(*.txt)\0*.txt\0C++ Files(*.cpp)\0*.cpp\0\0");
            169                        ofn.lpstrTitle = TEXT("打開");
            170                        lstrcpy( szFile, TEXT("") );
            171                        ofn.lpstrFile = szFile;
            172                        ofn.nMaxFile  = sizeof(szFile) / sizeof(TCHAR);
            173                        ::GetCurrentDirectory( STR_BUF_MAX, szPath );
            174                        ofn.lpstrInitialDir = szPath;
            175                        ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST;
            176                        if ( ::GetOpenFileName( &ofn ) ) {
            177                                ::MessageBox( hWnd, szFile, TEXT("文件名"), MB_OK );
            178                        }

            179                        return 0;
            180
            181                case IDM_ARROW : 
            182                case IDM_WAIT : 
            183                case IDM_USER : 
            184                        iCursorSelector = (int)(LOWORD(wParam)) - (int)(IDM_ARROW);
            185                        ::SetCursor( hCursor[ iCursorSelector ] );
            186                        ::CheckMenuRadioItem( hMenu, IDM_ARROW, IDM_USER, IDM_ARROW+iCursorSelector, MF_BYCOMMAND );
            187                        ::InvalidateRect( hWnd, NULL, TRUE );
            188                        return 0;
            189
            190                case IDM_CHINESE : 
            191                case IDM_ENGLISH : 
            192                        iLangSelector = (int)(LOWORD(wParam)) - (int)(IDM_CHINESE);
            193                        hMenu = ::LoadMenu( hInst, MAKEINTRESOURCE(IDM_WINZJ_CH+iLangSelector) );
            194                        ::SetMenu( hWnd, hMenu );
            195                        ::CheckMenuRadioItem( hMenu, IDM_CHINESE, IDM_ENGLISH, IDM_CHINESE+iLangSelector, MF_BYCOMMAND );
            196                        ::LoadString( hInst, IDS_CURSOR_USER_CH+iLangSelector, szCursor[ 2 ], STR_BUF_MAX );
            197                        ::LoadString( hInst, IDS_APPNAME_CH+iLangSelector, szText, STR_BUF_MAX );
            198                        ::SetWindowText( hWnd, szText );
            199                        ::SendMessage( hWnd, WM_COMMAND, IDM_ARROW+iCursorSelector, 0 );
            200                        ::InvalidateRect( hWnd, NULL, TRUE );
            201                        return 0;
            202
            203                case IDM_INFO : 
            204                        ::MessageBox( hWnd, TEXT("第三次上機練習\n對話框,光標,字符串,位圖\n\n學號:***********\n姓名:****\n"), TEXT("Lab3 ZJ"), MB_OK|MB_ICONINFORMATION );
            205                        return 0;
            206                }

            207                break;
            208        }

            209        return ::DefWindowProc( hWnd, uMsg, wParam, lParam );
            210}

            211
            212
            213INT_PTR CALLBACK DlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) {
            214        int i;
            215        switch ( uMsg ) {
            216        case WM_INITDIALOG : 
            217                for ( i = IDC_CHECK1; i <= IDC_CHECK5; ++i ) {
            218                        ::CheckDlgButton( hDlg, i, bCheck[ i-IDC_CHECK1 ] );
            219                }

            220                return TRUE;
            221        case WM_COMMAND : 
            222                switch ( LOWORD(wParam) ) {
            223                case IDOK : 
            224                        for ( i = IDC_CHECK1; i <= IDC_CHECK5; ++i ) {
            225                                bCheck[ i-IDC_CHECK1 ] = ::IsDlgButtonChecked( hDlg, i );
            226                        }

            227                case IDCANCEL : 
            228                        ::EndDialog( hDlg, LOWORD(wParam) );
            229                        return TRUE;
            230                }

            231                break;
            232        }

            233        return FALSE;
            234}

            235
            236
            237BOOL  CALLBACK DlgLessProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) {
            238        switch ( uMsg ) {
            239        case WM_INITDIALOG : 
            240                ::CheckRadioButton( hDlg, IDC_RADIO1, IDC_RADIO5, IDC_RADIO1+iRadioSelector );
            241                return TRUE;
            242        case WM_COMMAND : 
            243                switch ( LOWORD(wParam) ) {
            244                case IDOK : 
            245                        iRadioSelector = 0;
            246                        while ( ! ::IsDlgButtonChecked( hDlg, IDC_RADIO1+iRadioSelector ) ) {
            247                                ++iRadioSelector;
            248                        }

            249                        ::InvalidateRect( ::GetParent(hDlg), NULL, TRUE );
            250                        return TRUE;
            251                case IDCANCEL : 
            252                        ::DestroyWindow( hDlgLess );
            253                        hDlgLess = NULL;
            254                        return TRUE;
            255                }

            256                break;
            257        }

            258        return FALSE;
            259}

            260


            posted on 2011-04-24 15:33 coreBugZJ 閱讀(1088) 評論(0)  編輯 收藏 引用 所屬分類: 課內作業

            久久超乳爆乳中文字幕| 亚洲精品美女久久久久99| 成人亚洲欧美久久久久| 精品视频久久久久| 精品一二三区久久aaa片| 久久久久人妻精品一区二区三区| 久久婷婷五月综合97色| 99久久免费国产精品| 欧美伊人久久大香线蕉综合69| 久久久久久精品成人免费图片| 欧美喷潮久久久XXXXx| 成人午夜精品久久久久久久小说| 一级a性色生活片久久无少妇一级婬片免费放| 人妻无码精品久久亚瑟影视| 国产精品一区二区久久不卡| 精品久久人人妻人人做精品 | 91久久九九无码成人网站| 一本久道久久综合狠狠躁AV| 久久精品aⅴ无码中文字字幕重口| 欧美伊香蕉久久综合类网站| 国产精品久久久久久久app| 99久久综合狠狠综合久久止| 一本一道久久a久久精品综合| 国产精品禁18久久久夂久| 天堂无码久久综合东京热| 好属妞这里只有精品久久| 久久人人爽人人人人爽AV| 99久久夜色精品国产网站| 亚洲AV日韩AV永久无码久久| 精品久久久久国产免费| 久久精品aⅴ无码中文字字幕重口| 思思久久99热免费精品6| 久久久久综合网久久| 漂亮人妻被黑人久久精品| 亚洲伊人久久综合影院| 久久se这里只有精品| 久久久精品人妻一区二区三区四| 一级女性全黄久久生活片免费 | 久久久久se色偷偷亚洲精品av | 久久亚洲私人国产精品vA| 色婷婷综合久久久久中文字幕 |