简单VC对话框编程

Posted yangyuqing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单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;
}

12. 运行结果

技术分享图片

 

以上是关于简单VC对话框编程的主要内容,如果未能解决你的问题,请参考以下文章

VC6.0编程,新建了一个对话框,怎么在这个对话框里添加文字?

vc编程DoModal弹不出对话框 你是怎么解决问题的?

vc++中的简单消息框显示

VC编程技巧窗口?3.6以渐变效果加载对话框

VC++6.0,界面字号问题

vc导入导出数据到excel表