簡單VC對話框編程


基本步驟

1.點擊文件--新建--項目

2. 選擇Win32項目,填入名稱和選擇路徑

3. 在應用程序向導窗口中點擊”下一步“

 

4. 在應用程序設置窗口中勾選”空項目“,再點擊“完成”

5. 在左邊的解決方案資源管理器窗口中,右擊“源文件”,選擇“添加”-“新建項”

6. 在“添加新項”窗口中,先選擇C++文件(.cpp),再寫入源文件名,點擊“添加”。這樣,源文件就添加好了

7. 添加資源文件(資源文件用來描述對話框的圖形界面),在左邊的解決方案資源管理器窗口中,右擊“資源文件”,選擇“添加”-“資源”

    在“添加資源”窗口,選中Dialog,再點擊“新建”

 

8. 點擊右側的“工具箱”,即可展開工具箱,並添加需要的控件到對話框中

 

9. 在相應的窗體或控件上右擊鼠標,選擇“屬性”,可以更改已添加組件的屬性。

    例如,修改對話框的標題為“測試”,在對話框屬性中更改“Caption”項內容即可。然后將對話框的ID改為DLG,Visible屬性改為TRUE

  

 

 

 

 

 10. 更改完成后,可以點擊工具欄左上角的“測試對話框”按鈕查看運行效果

 

 11. 建立主函數在之前建好的源文件中添加如圖所示的主函數代碼,代碼的含義已經作了相應的注釋

#include<Windows.h>
#include"resource.h" //包含資源文件

//聲明對話框程序
BOOL CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM);

//主函數
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   PSTR szCmdLine,
                   int iCmdShow)
{
    /*DialogBox函數:創建一個模態對話框
     參數1:實例句柄
     參數2:對話框資源模板名
            此參數類型為以NULL結尾的字串指針,故用MAKEINTRESOURCE宏對整形ID進行轉換
     參數3:對話框的父窗口,如無則為NULL
     參數4:對話框程序指針(消息處理函數)
     */
    DialogBox(hInstance,MAKEINTRESOURCE(DLG),NULL,DlgProc);
    return 0;
}
//對話框程序
BOOL CALLBACK DlgProc(HWND hDlg,UINT msg,WPARAM wParam,LPARAM lParam)
{
    switch(msg)
    {
    case WM_INITDIALOG://初始化對話框的代碼添加到這
        return TRUE;
    case WM_COMMAND://處理命令消息的代碼添加到這
        switch(LOWORD(wParam))
        {
        case IDOK://點擊了"確定"按鈕需要執行的操作添加到這
            MessageBox(NULL,TEXT("你點了確定"),TEXT(""),MB_OK);
            return TRUE;
        case IDCANCEL://點擊取消按鈕需要執行的操作添加到這
            /*EndDialog函數:關閉對話框
            參數1:要關閉的對話框窗口句柄
            參數2:從創建對話框函數返回到應用程序的值*/
            EndDialog(hDlg,0);
        }
        return TRUE;
    case WM_CLOSE://點擊右上角小叉關閉時需要執行的操作添加到這
        EndDialog(hDlg,0);
        return TRUE;
    }
    return FALSE;
}

 

MessageBox(NULL,TEXT("你點了確定"),TEXT(""),MB_OK);

第一個參數是父窗口的句柄,第二個參數是內容,第三個參數是標題,第四個參數是確定

 

12. 運行結果

函數注釋

DialogBox創建dialog窗口

函數原型

 

int DialogBox(
        HIBSTANCE hInstance,//指向模塊的句柄
        LPCTSTRlp Template,  // 指向模板的字符串指針
        HWND hWndParent,    //父窗口句柄
        DLGPROC lpDialogFunc  // 窗口過程函數
);

MAKEINTRESOURCE(根據ID獲取窗口模板名稱)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM