社区
界面
帖子详情
MFC ClassWizard 窗口如何打开
dbky50
2009-08-22 09:16:37
我是新手,学着在对话框中添加了个按钮,接下来为按钮添加成员变量,书上显示了一个窗口的图,说是在这个窗口中可完成添加变量的功能,窗口名字处是MFC ClassWizard ,但我在哪能打开这个窗口呢?
...全文
1530
4
打赏
收藏
MFC ClassWizard 窗口如何打开
我是新手,学着在对话框中添加了个按钮,接下来为按钮添加成员变量,书上显示了一个窗口的图,说是在这个窗口中可完成添加变量的功能,窗口名字处是MFC ClassWizard ,但我在哪能打开这个窗口呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hcy416
2012-07-16
打赏
举报
回复
查看 - 建立类向导
qinger1015
2012-06-05
打赏
举报
回复
怎么弄呀,我也不会
dbky50
2009-08-22
打赏
举报
回复
谢谢,我折腾了半天也没找到,
xylicon
2009-08-22
打赏
举报
回复
Ctrl + W
MFC
多
窗口
例程
No.4 简单的
MFC
多对话框演示程序 “MultiDialog” 演示如何在工程中拥有多个对话框,及如何在一个对话框中调用另一个对话框。 重点:1、多个对话框类的建立;2、对话框的模式(Modal)调用方法;3、Spin控件的使用。 新建一个基于对话框的
MFC
工程, 通过菜单"Insert>>Resource"
打开
添加资源对话框, 在其中选择Dialog后点击New创建一个新的对话框 按Ctrl+W
打开
Class
Wizard
,系统会提示刚才创建了一个新的对话框资源,是否建立对应的类, 选择建立,然后在New
Class
窗口
中
Class
Name栏输入它的名称:CSub
Class
1, 确定后系统会自动生成Sub
Class
1.h和Sub
Class
1.cpp并加入工程中,其中有已经创建好的CSub
Class
1的类的基本代码。 把这个对话框的Caption属性改为“难度选择”,在它上面画三个Radio“简单”、“标准”、“困难”, 并建立相关联的变量m_Option1。(要注意的是在
Class
Wizard
中注意
Class
Name中应该选CSub
Class
1而不是之前的主对话框类) 按照相同方法建立第二个新对话框,类名“CSub
Class
2”,Caption为“关卡选择”。 在上面画一个Edit和一个Spin,注意先画Edit后画Spin,将Spin的Auto buddy和Set buddy integer勾上。 按Ctrl+W
打开
Class
Wizard
,为Edit建立关联变量,不过注意是int型而不是CString型, 也为Spin建立关联变量m_Spin1,注意这次是Control型变量CSpinButtonCtrl。 下面为这两个对话框添加代码。 双击“难度选择”对话框的OK按钮,建立对话框的OnOK映射。 在其中加入(在CDialog::OnOK();之前): UpdateData(TRUE); if ((m_Option1>2) ||(m_Option1<0)) { MessageBox("错误的选择!","提示",MB_OK); return; } 下面对“关卡选择”对话框添加初始化代码, 由于关卡的有效值只有1到6,因此需要在初始化时设置Spin控件的有效值范围。 按Ctrl+W
打开
Class
Wizard
,在左侧列表选择这个对话框类CSubDialog2, 在右侧列表中选择WM_INITDIALOG,点击右边的“Add Function...”按钮, 接着点击右边的“Edit Code”按钮,在其中中加入(在CDialog::OnInitDialog()那句之后,在return TRUE那句之前): m_Spin1.SetRange(1,6); m_Text1=1; m_Spin1.SetPos(1); 其中CSpinButtonCtrl::SetRange()函数的作用是设置和他关联的Spin控件的范围,两个参数分别是下界和上界。 而CSpinButtonCtrl::SetPos()是设定Spin的当前位置。 两个新的对话框都已建立完毕,下来是如何在主对话框中使用的问题。 首先,两个新对话框都有各自的类,分别在SubDialog1.h和SubDialog2.h中有定义。(类的细节则在对应的cpp中定义) 因此,主对话框想要调用这两个新对话框,需要先包含这两个头文件, 在你要使用的地方(本例是MultiDialogDlg.cpp中)文件前面加上 #include "SubDialog1.h" #include "SubDialog2.h" 然后在想要调用的地方就可以使用了。 本例中,首先为主
窗口
的两个Edit建立CString型关联变量m_Text1和m_Text2, 然后在两个按钮的消息映射函数中分别加入: CSubDialog1 dialog1; //定义CSubDialog1型对话框的一个新对象 dialog1.DoModal(); //使用“模式”调用,显示对话框 m_Text1.Format("%d",dialog1.m_Option1); //此句在上面对话框没有关闭前不会执行到 UpdateData(FALSE); 和 CSubDialog2 dialog1; dialog1.DoModal(); m_Text2.Format("%d",dialog1.m_Text1); UpdateData(FALSE); 其中第一句均为定义对话框新实例的语句,定义一个你想要的类型的对话框。 第二句是通过调用CDialog::DoModal()方法,来显示这个对话框,并进入“模式”(Modal)状态 在“模式”状态,当子对话框没有关闭之前,调用它的父对话框不能被响应, 并且其语句执行会停留在刚才的DoModal语句上等待,直到子对话框关闭才接着执行下一个语句。 第三第四句将子对话框得到的数据(即类的成员变量)显示在父对话框的Edit上。 四句执行完后退出该函数,这时刚才定义的CSubDialog1等对话框类变量被销毁,因此创建的话框也被销毁。
mfc
_
Class
Wizard
.rar_
mfc
消息响应_消息 映射
MFC
消息映射机制的剖析,讲述如何运用
Class
Wizard
,,理解发送给
窗口
的消息是如何被
MFC
框架通过
窗口
句柄映射表和消息映射表来用
窗口
类的函数进行响应的
vc++操作Excel
第一步 启动VC 6.0,
打开
新建对话框,新建一个
MFC
App
Wizard
(exe)工程,这里工程明设置为TestExcel。第二步
打开
MFC
Class
Wizard
窗口
(查看—>建立类向导),选择Automation,单击Add
Class
按钮,选择From a type library...,弹出文件选择对话框,之后定位到Microsoft Office的安装目录(通常为C:\Program Files\Microsoft Office\Office12),选择EXCEL9.OLB注意,确定后,弹出Confirm
Class
es
窗口
,选择列表中的所有类,单击OK按钮。第三步 返回编辑器,查看工程文件,可发现多了EXCEL.H及EXCEL.CPP两个文件。
打开
TestExcelDlg.cpp文件包含如下头文件: #include #include "excel9.h"
编程
MFC
,
MFC
框架宝典
MFC
概述
MFC
是一个编程框架
MFC
(Microsoft Foundation
Class
Library) 中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,
MFC
框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++提供了相应的工具来完成这个工作:App
Wizard
可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;
Class
Wizard
用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。 封装 构成
MFC
框架的是
MFC
类库。
MFC
类库是C++类库。这些类或者封装了Win32应用程序编程接口,或者封装了应用程序的概念,或者封装了OLE特性,或者封装了ODBC和DAO数据访问的功能,等等,分述如下。 (1)对Win32应用程序编程接口的封装 用一个C++ Object来包装一个Windows Object。例如:
class
CWnd是一个C++ window object,它把Windows window(HWND)和Windows window有关的API函数封装在C++ window object的成员函数内,后者的成员变量m_hWnd就是前者的
窗口
句柄。 (2)对应用程序概念的封装 使用SDK编写Windows应用程序时,总要定义
窗口
过程,登记Windows
Class
,创建
窗口
,等等。
MFC
把许多类似的处理封装起来,替程序员完成这些工作。另外,
MFC
提出了以文档-视图为中心的编程模式,
MFC
类库封装了对它的支持。文档是用户操作的数据对象,视图是数据操作的
窗口
,用户通过它处理、查看数据。 (3)对COM/OLE特性的封装 OLE建立在COM模型之上,由于支持OLE的应用程序必须实现一系列的接口(Interface),因而相当繁琐。
MFC
的OLE类封装了OLE API大量的复杂工作,这些类提供了实现OLE的更高级接口。 (4)对ODBC功能的封装 以少量的能提供与ODBC之间更高级接口的C++类,封装了ODBC API的大量的复杂的工作,提供了一种数据库编程模式。 继承
深入浅出
MFC
【侯捷】
深入浅出
MFC
(第二版) 目录 第0章 你一定要知道(导读) 这本书适合谁 你需要什么技术基础 你需要什么软硬件环境 让我们使用同一种语言 本书符号习惯 本书例程的取得 范例程序说明 与前版本之差异 如何联络作者 第一篇 勿在浮砂筑高台 第1章 Win32程序基本概念 Win32程序开发流程 需要什么函数库(.LIB) 需要什么头文件(.H) 以消息为基础,以事件驱动之(message based,event driven) 一个具体而微的Win32程序 程序进入点WinMain
窗口
类之注册与
窗口
之诞生 消息循环
窗口
的生命中枢:
窗口
函数 消息映射(Message Map)的雏形 对话框的运行 模块定义文件(.DEF) 资源描述档(.RC) Widnows程序的生与死 空闲时间的处理:OnIdle Console程序 Console程序与DOS程序的差别 Console程序的编译链接 JBACKUP:Win32 Console程序设计
MFC
CON:
MFC
Console程序设计 行程与线程(Process and Thread) 核心对象 一个行程的诞生与死亡 产生子行程 一个线程的诞生与死亡 以_beginthreadex取代CreateThread 线程优先级(Priority) 多线程程序设计实例 第2章 C++的重要性质 类及其成员——谈封装(encapsulation) 基类与派生类:谈继承(Inheritance) this指针 虚拟函数与多态(Polymorphism) 类与对象大解剖 Object slicing与虚拟函数 静态成员(变量与函数) C++程序的生与死:兼谈构造函数与解构函数 四种不同的对象生存方式(in stack、in heap、global、local static) 执行期类型信息(RTTI) 动态生成(Dynamic Creation) 异常处理(Exception Handling) Template Template Functions Template
Class
es Template的编译与链接 第3章
MFC
六大关键技术之仿真
MFC
类层次结构 Frame 1范例程序
MFC
程序的初始化过程 Frame 2范例程序 RTTI(执行期类型识别) 类别型录网与CRuntime
Class
DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC宏 Frame 3范例程序 IsKindOf(类型识别) Frame 4范例程序 Dynamic Creation(动态生成) DECLARE_DYNCREATE/IMPLEMENT_DYNCREATE宏 Frame 6范例程序 Persistence(永久保存)机制 Serialize(数据读写) DECLARE_SERIAL/IMPLEMENT_SERIAL宏 没有范例程序 Message Mapping(消息映射) Frame 7范例程序 Command Routing(命令传递) Frame 8范例程序 本章回顾 第二篇 欲善工事先利其器 第4章 Visual C++集成开发环境 安装与组成 四个重要的工具 内务府总管:Visual C++集成开发环境 关于project 关于工具设定 Source Browser Online Help 调试工具 VC++调试器 Exception Handling 程序代码产生器:App
Wizard
东圈西点完成
MFC
程序骨干 威力强大的资源编辑器 Icon编辑器 Cursor编辑器 Bitmap编辑器 工具栏(Toolbar)编辑器 VERSIONINFO资源编辑器 字符串表格(Accelerator)编辑器 菜单(Menu)编辑器 加速键(Accelerator)编辑器 对话框(Dialog)编辑器 Console程序的项目管理 第三篇 浅出
MFC
程序设计 第5章 总观Application Framework 什么是Application Framework? 侯捷怎么说 我怎么说 别人怎么说 为什么使用Application Framework Microsoft Foundation
Class
es(
MFC
) 白头宫女话天宝:Visual C++与
MFC
纵览
MFC
General Purpose
class
es CObject 数据处理类(collection
class
es) 杂项类 异常处理类(exception handling
class
es) Windows API
class
es Application framework
class
es High level Abstractions Afx全局函数
MFC
宏(macros)
MFC
数据类型(data types) 第6章
MFC
程序的生死因果 不二法门:熟记
MFC
类的层次结构 需要什么函数库? 需要什么头文件? 简化的
MFC
程序结构——以Hello
MFC
为例 Hello程序程序代码
MFC
程序的来龙去脉(causal relations) 我只借用两个类:CWinApp和CFrameWnd CWinApp——取代WinMain的地位 CFrameWnd——取代WndProc的地位 引爆器——Application object 隐晦不明的WinMain AfxWinInit——AFX内部初始化操作 CWinApp::InitApplication CMyWinApp::InitInstance CFrameWnd::Create产生主
窗口
(并先注册
窗口
类) 奇怪的
窗口
类名称Afx:b:14ae:6:3e8f
窗口
显示与更新 CWinApp::Run——程序生命的活水源头 把消息与处理函数连接在一起:Message Map机制 来龙去脉总整理 Callback函数 空闲时间(idle time)的处理:OnIdle Dialog与Control 通用对话框(Common Dialogs) 本章回顾 第7章 简单而完整:
MFC
骨干程序 不二法门:熟记
MFC
类层次结构
MFC
程序的UI新风貌 Document/View支撑你的应用程序 利用Visual C++工具完成Scribble step0 骨干程序使用哪些
MFC
类? Document Template的意义 Scribble的Document/View设计 主
窗口
的诞生 工具栏和状态栏的诞生(Toolbar&Status bar) 鼠标拖放(Drag and Drop) 消息映射(Message Map) 标准菜单File/Edit/View/Window/Help 对话框 改用CEditView 第四篇 深入
MFC
程序设计 第8章 Document-View深入探讨 为什么需要Document-View(形而上) Document View Document Frame(View Frame) Document Template CDocTemplate管理CDocument/CView/CFrameWnd Scribble Step1的Document——数据结构设计
MFC
Collection
Class
es的选用 CScribbleDoc的修改 文件:一连串的线条 线条与坐标点 Scribble Step 1的View:数据重绘与编辑 CScribbleView的修改 View的重绘操作:GetDocument和OnDraw
Class
Wizard
的辅佐
Wizard
Bar的辅佐 Serialize:对象的档案读写 Serialization以外的档案读写操作 台面上的Serialize操作 台面下的Serialize写档奥秘 台面下的Serialize读档奥秘 DYNAMIC/DYNCREATE/SERIAL三宏 Serializable的必要条件 CObject类 IsKindOf IsSerializable CObject::Serialize CArchive类 operator《和operator》 效率考虑 自定SERIAL宏给抽象类使用 在CObList中加入CStroke以外的类 Document与View交流——为Step4做准备 第9章 消息映射与命令传递 到底要解决什么 消息分类 万流归宗Command Target(CCmdTarget) 三个奇怪的宏,一张巨大的网 DECLARE_MESSAGE_MAP宏 消息映射网的形成:BEGIN…/ON…/END…宏 米诺托斯(Minotauros)与西修斯(Theseus) 二万五千里长征——消息的传递 直线上溯(一般Windows消息) 拐弯上溯(WM_COMMAND命令消息) 罗塞达碑石:AfxSig_xx的奥秘 Scribble Step2:UI对象的变化 改变菜单 改变工具栏 利用
Class
Wizard
连接命令项识别码与命令处理函数 维护UI对象状态(UPDATE_COMMAND_UI) 本章回顾 第10章
MFC
与对话盒 对话框编辑器 利用
Class
Wizard
连接对话框与其专用类 对话框的消息处理函数 对话框数据交换与校验(DDX&DDV) 如何唤起对话框 本章回顾 第11章 View功能的加强与重绘效率的提高 同时修改多个Views:UpdateAllViews和OnUpdate 在View中定义一个hint 把hint传给OnUpdate 利用hint增加重绘效率 可卷动的
窗口
:CScrollView 大
窗口
中的小
窗口
:Splitter 切分
窗口
的功能 切分
窗口
的程序概念 切分
窗口
的实现 本章回顾 第12章 打印与预览 概述 打印操作的后台原理
MFC
默认的打印机制 Scribble打印机制的增强 打印机的页和文件的页 配置GDI绘图工具 尺寸与方向:关于映射方式(坐标系统) 分页 页眉与页脚 动态计算页码 打印预览(Print Preview) 本章回顾 第13章 多重文件与多重显示 MDI和SDI 多重显示(Multiple Views)
窗口
的动态切分
窗口
的静态切分 CreateStatic和CreateView
窗口
的静态三叉切分 Graph范例程序 静态切分
窗口
之观念整理 同源子
窗口
CMDIFrameWnd::OnWindowNew Text范例程序 非标准做法的缺点 多重文件 新的Cocument类 新的Document Template 新的UI系统 新文件的档案读写操作 第14章
MFC
多线程程序设计 从操作系统层面看线程 三个观念:模块、行程和线程 线程优先级(Priority) 线程调度(Scheduling) Thread Context 从程序设计层面看线程 Worker Threads和UI Threads 错误观念 正确态度
MFC
多线程程序设计 探索CWinThread 产生一个Worker Thread 产生一个UI Thread 线程的结束 线程与同步控制
MFC
多线程程序例程 第15章 定制一个App
Wizard
到底
Wizard
是什么? Custom App
Wizard
的基本操作 剖析App
Wizard
Components Dialog Templates和Dialog
class
es Macros Directives 动手修改Top Studio App
Wizard
利用资源编辑器修改IDD_CUSTOM1对话框画面 利用
Class
Wizard
修改IDD_CUSTOM1对话框的对应类CCustomlDlg 改写OnDismiss虚拟函数,在其中定义macros 修改text template Top Studio App
Wizard
执行结果 更多的信息 第16章 站上众人的肩膀——使用Components&activeX Controls 什么是Component Gallery 使用Components Splash screen system Info for About Dlg Tip of the Day Components实际运用:ComTest程序 修改ComTest程序内容 使用ActiveX Controls ActiveX Control基础观念:Properties、Methods、Events ActiveX Controls的五大使用步骤 使用ActiveX Control:OcxTest程序 第五篇 附录 附录A 无责任书评:从摇篮到坟墓Windows的完全学习 无责任书评:
MFC
四大天王 附录B Scribble Step 5完整原始码 附录C Visual C++5.0
MFC
范例程序一览 附录D 以
MFC
重建DBWIN收起
界面
15,979
社区成员
115,897
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章