新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 對話框按鈕簡單使用實(shí)例

        對話框按鈕簡單使用實(shí)例

        作者: 時(shí)間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

        需要先添加對話框,并且修改確定按鈕的ID值

        本文引用地址:http://www.104case.com/article/201609/303399.htm

        .h文件

        struct DecodeUint{
        UINT meesage;
        LONG (*fun)(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
        };

        #define dim(x) (sizeof(x)/sizeof(x[0]))

        LONG OnInit(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
        LONG OnCommand(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
        LONG OnClose(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
        LONG OnBtnClick(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);

        BOOL CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);

        .c文件

        #include
        #include
        #include Border.h
        #include resource.h
        #include

        struct DecodeUint DlgMessage[] = {
        WM_INITDIALOG,OnInit,
        WM_COMMAND,OnCommand,
        };

        struct DecodeUint DlgCommand[] = {
        IDBTN,OnBtnClick,
        IDCANCEL,OnClose,
        };

        HINSTANCE g_hInst;
        HWND hStatic;

        LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

        int WinMain(HINSTANCE hInstance,
        HINSTANCE hPrevInstance,
        LPTSTR lpCmdLine,
        int nCmdShow)
        {
        g_hInst = hInstance;
        DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,About);
        return 1;
        }

        BOOL CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
        {
        for (int i = 0;i dim(DlgMessage);i ++)
        {
        if (DlgMessage[i].meesage == message)
        {
        (*DlgMessage[i].fun)(hDlg,message,wParam,lParam);
        }
        }
        return FALSE;
        }

        LONG OnCommand(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
        {
        for (int i = 0;i dim(DlgCommand);i ++)
        {
        if (DlgCommand[i].meesage == LOWORD(wParam))
        {
        (*DlgCommand[i].fun)(hDlg,message,wParam,lParam);
        }
        }

        return TRUE;
        }

        LONG OnInit(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
        {
        hStatic = CreateWindow(TEXT(static),TEXT(static text),WS_CHILD | WS_VISIBLE | WS_BORDER | SS_CENTER | SS_CENTERIMAGE,
        10,10,200,200,hDlg,(HMENU)101,g_hInst,NULL);
        return TRUE;
        }

        LONG OnClose(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
        {
        EndDialog(hDlg,0);
        return TRUE;
        }

        LONG OnBtnClick(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
        {
        //1 獲取文本內(nèi)容 修改對話框標(biāo)題
        //TCHAR * pc;
        //int count = Static_GetTextLength(hStatic);
        //pc = new TCHAR[count+1];
        //Static_GetText(hStatic,pc,count+1);
        //SetWindowText(hDlg,pc);
        //delete pc;

        //2 設(shè)置按鈕不可用
        Button_Enable(GetDlgItem(hDlg,IDCANCEL),FALSE);
        return 0;
        }



        關(guān)鍵詞:

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 伊春市| 横峰县| 荃湾区| 怀安县| 锦州市| 安福县| 紫阳县| 珲春市| 衡南县| 长海县| 六枝特区| 公主岭市| 宜丰县| 新建县| 汝南县| 裕民县| 星座| 哈密市| 呈贡县| 金华市| 济南市| 保亭| 思南县| 大田县| 黔东| 简阳市| 曲沃县| 健康| 建瓯市| 伊吾县| 赤峰市| 西峡县| 斗六市| 宁晋县| 会昌县| 松滋市| 鄢陵县| 邵东县| 梁山县| 金阳县| 肇庆市|