MFC原创教程:从不会开始(对话框1)
发布日期:2021-10-01 11:36:04 浏览次数:2 分类:技术文章

本文共 1935 字,大约阅读时间需要 6 分钟。

后话:第一次接触MFC可能感觉乱七八糟,明明感觉就应该只是和VB一样。后来才知道它们最大的区别就是MFC是SDK,C++是面向对象编程。刚开始学的时候,都是在看原理什么的,很难理解。很多人也说要从知其所以然开始,但我个人还是认为,先知道怎么搞简单的吧,认识是在实践中长出来的。

第一篇:使用V6.0编译器,我现在讨厌死V6.0了,使用VS2010多方便,但以前的高手可能会说,V6.0轻巧,随便到哪都可以现场调试。但我想,V6.0的实在太老了,用过知道大概怎么用了就好了……

1:新建--工程-MFC(exe)--基于对话框(D)--完成

2:创建对话框
ResourceView (资源检视)--在文件夹Dialog(对话框)处单击右键--插入Dialog
这时系统自动创建一个ID为IDD_DIALOG1的窗口,右键点击IDD_DIALOG1(或者右键点击右边创建的窗口视图)--属性--可以将ID修改为IDD_FRIST(好像习惯性都是大写字母表示)
3:为对话框关联类
第①种方法比较麻烦。
左键单击创建出来的窗口视图,按Ctrl+w -- Creat a new class -- OK
这里类的名字 Name 填写为CFrist (类好像习惯以大写C开头,后面带对话框ID),OK--OK,完成了类的创建。
这时单击ClassView,就可以找到CFrist这个类了
第②种方法比较常用。(通过类向导)
单击ClassView--右键点击ProjectDIg classes--New Form--名称:CSecond--OK。这样就直接创建并且关联了类。
PS:右键点击类名称--Go to Dialog Editor 就可以直接跳转到该类关联的对话框窗口视图
3:显示对话框
(模式对话框:程序在关闭模式对话框之前不能进行对话框切换;非模式对话框:可以自由切换到其它对话框中;)
①显示模式对话框
创建一个触发按钮来显示对话框。
ClassView中右键点击CProjectDIgDIg(默认界面的样子)--Go to Dialog Editor--左键双击“确定”按钮--OK 即创建了一个OnOK()的CProjectDIgDlg的成员函数,并且自动跳转到代码页面。
(可以删去大括号里面的默认内容)
因为需要在当前文件中访问CFrist类,所以需要在当前文件中,移到最上方,输入:#include "Frist.h"。(注意不是CFrist.h,可以在ClassView双击CFrist,可以看到// Frist.h : header file )
然后就可以在OnOK函数里面输入
CFrist Frist;//创建类对象
Frist.DoModal();//显示模式对话框;
编译,运行,单击确定,就知道什么是模式对话框了。
②显示非模式对话框。
进入默认界面试图,使用控件工具栏,单击 按钮 画出一个按钮。

ClassVIew--双击CDialogDIg,在光标处上方输入 #include"Second.h"

在下方class CDialogDlg : public CDialog的public:输入CSecond m_Second;(以m_为开头说是不成文的约定)

进入默认视图界面,双击Button1,命名为OnSecond

代码设置:

void CDialogDlg::OnSecond() {

m_Second.Create(IDD_SECOND_DIALOG); //对话框的创建,参数是对话框的ID(不像模式对话框,可以创建局部变量来显示模式对话框
m_Second.ShowWindow(SW_SHOW);//非模式对话显示,SW_SHOW 是个常量,表示显示(暂时不大理解SW_SHOW)

}

③设置对话框属性

选择对话框,右键--属性(或者选择对话框--回车键)就可以修改标题等属性。

创建菜单

ResourceView--右键点击Dialog resources--插入--Menu--New。

修改IDR_MENU1的ID为IDR_SYSMENU

双击右边菜单视图里的小长方形,第一列设置标明:系统-退出-重新登陆。

回到默认界面视图--属性--菜单--选择IDR_SYSMENU

其它的设置(常规和样式)看看应该就能了解,和VB一样,也可以通过代码来修改属性,比如:

ClassView--CDialogDIg--双击OnInitDialog[],往下移动光标,在 SetIcon(m_hIcon, FALSE);// Set small icon 下方输入:SetWindowText("对话框标题");

转载地址:https://blog.csdn.net/iteye_4639/article/details/82471409 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:MFC原创教程:从不会开始(对话框2)
下一篇:Fast C++ Delegate: Boost.Function 'drop-in' replacement and multicast

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月14日 05时24分11秒