必威体育Betway必威体育官网
当前位置:首页 > IT技术

MFC系列 - 弹出一个模态对话框

时间:2019-09-08 07:13:15来源:IT技术作者:seo实验室小编阅读:89次「手机版」
 

弹出对话框

上一节,说到第一个MFC程序,这一节我们从第一个FirstMFC来延伸弹一个对话框,Initinstance函数相当于main函数,那我们就从这里开始。【更多精彩教程视频教学、源码分享请加入qq群:569268376】

首先添加一个对话框资源

修改一下对话框的资源ID:IDD_MAIN_DLG,最好改一下资源ID名称,养成好的编程习惯。添加资源就会多生成两个文件:resource.h和HelloMFC.rc文件

在InitInstance函数中修改一下,添加弹出对话框的代码,DoModal就是弹一个模态对话框

#include<afxwin.h>
#include"resource.h"
classCHellMFCAPP : publicCWinApp
{
public:
    virtualBOOLInitInstance()
    {
       CDialogdlg(IDD_MAIN_DLG);
       dlg.DoModal();
       returnTRUE;
    }
};
CHellMFCApp theApp;

注意要包含头文件:resource.h否则,编译不通过,编译运行效果出来了。

点击对话框模板,右键=》属性,会弹出属性面板:

给对话框添加自己的标题、最小化、最大化系统菜单

如下效果:

但是此时的对话框,你是无法想要实现你的操作的,比如响应一些windows常用消息。如果要实现必须给对话框添加自己CDialog的子类,这个时候才能截获消息自己来处理。

注意:基类要写CDialog 

这里要给CMainDlg的父类对象进行构造

因为现在IDD_MAIN_DLG是定义在resource.h中的,所以要包含头文件。修改一下InitInstance函数:

virtualBOOLInitInstance()
{
    CMainDlgdlg;
    dlg.DoModal();
    returnTRUE;
} 

重现编译一下,对话框又出来了,这个时候可以在CMainDlg中控制窗口,想干什么就干什么。

OnInitDialog函数是什么呢?他是对话框的初始化函数,在对话框还没有启动的时候响应,这是我们来设置它的窗口标题:

BOOLCMainDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    SetWindowText(L"我是帅哥");
    returnTRUE;  // return TRUE unless you set the focus to acontrol
    // 异常:  OCX 属性页应返回 FALSE
}

设置对话框的图标,就是左上角图标,首先还得准备一个图标.ico后缀的文件(或者PS一个),拷贝到项目目录下面,习惯再此新建一个文件夹res

这时候再来添加图标资源:

资源有了之后,接下来加载图标资源,在CMainDlg中添加一个成员变量:HICON m_hIcon; 即图标句柄,再到构造函数中加载图标:

CMainDlg::CMainDlg() :CDialog(IDD_MAIN_DLG)
{
    m_hIcon = ::LoadIcon(AfxGetInstancehandle(), MAKEINTRESOURCE(IDI_ICON1));
}

再到OnInitDialog中设置图标:

BOOLCMainDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    SetWindowText(L"我是帅哥");
    更多精彩教程,视频教学、源码分享请加入QQ群:569268376
    SetIcon(m_hIcon,TRUE);
    SetIcon(m_hIcon,FALSE);
    returnTRUE;
}

好了,这就完成了 

更多精彩教程,源码分享请加入QQ群:569268376

相关阅读

基于vs2012开发activex(MFC)控件

最近学习下ActiveX的开发,网上找了好多东西,现在把开发过程记录下来以备以后使用。1.新建工程2.一直点击下一步,直到出现一下界面,注

layui弹出层使用(layer.alert / layer.open / layer.

一 layer.alert 效果图: 代码: //取消提现 function back(id) { layer.alert('真的要取消吗', { skin: 'layui-la

Xshell 缺少 mfc110.dll

Xshell 缺少 mfc110.dll 原创 2016年03月04日 20:51:49 6609 xshell  应用程序无法正常启动0xc000007b    下载 DirectX修

关闭“是否只查看安全传送的网页内容?”对话框听语音

116651人看了这个视频 返回 暂停 重播 播放 x 为您找到与问题匹配度100%的视频 播放列表   2. 3. 4. 5. 6. 7. 8. 9.

电脑打开软件提示mfc100u.dll丢失该怎么办?

今天遇到了个头疼的问题打开个软件始终提示mfc100u.dll丢失,下面就教大家怎么解决这个烦人的问题!1、问题症状打开软件提示mfc100u.

分享到:

栏目导航

推荐阅读

热门阅读