新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 對話框按鈕簡單使用實例

        對話框按鈕簡單使用實例

        作者: 時間:2016-09-12 來源:網絡 收藏

        需要先添加對話框,并且修改確定按鈕的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 獲取文本內容 修改對話框標題
        //TCHAR * pc;
        //int count = Static_GetTextLength(hStatic);
        //pc = new TCHAR[count+1];
        //Static_GetText(hStatic,pc,count+1);
        //SetWindowText(hDlg,pc);
        //delete pc;

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



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 左云县| 威宁| 祁连县| 瓦房店市| 富源县| 民县| 长子县| 大渡口区| 南安市| 佛坪县| 沧州市| 临澧县| 伊吾县| 正镶白旗| 晋州市| 呼伦贝尔市| 滦平县| 朔州市| 永泰县| 蛟河市| 泰安市| 万宁市| 柘城县| 诸暨市| 屏东市| 永靖县| 岑溪市| 五莲县| 库伦旗| 武山县| 易门县| 云和县| 遂宁市| 阜阳市| 静宁县| 商都县| 株洲市| 江孜县| 房山区| 莱芜市| 大竹县|