几种常用的MFC界面编程技巧
来源:互联网 发布:关于网络信息的段子 编辑:程序博客网 时间:2024/05/17 02:23
在MFC界面编程方面,有很多很好的Demo可以参考,这里只是记录几种常用的技巧,非常非常的基础,只能算是一点小小的总结。
详细而又权威的还是参考MSDN吧。
1.拆分窗口
拆分窗口可以实现单文档多视图效果,VC++6.0的资源编辑窗口,文件编辑窗口都是这个,可以使用静态或动态两种方法来创建,这里介绍静态创建拆分窗口的一般步骤。
第一步,wizard创建一个单文档程序,重载框架类CMainFrame::OnCreateClient函数,如下如下所示:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
// 静态拆分窗口,设置相关视图模式
if (!m_wndSplitter.CreateStatic (this, 1, 2) ||
!m_wndSplitter.CreateView (0, 0, RUNTIME_CLASS (CXXXView), CSize (200, 0), pContext) ||
!m_wndSplitter.CreateView (0, 1, RUNTIME_CLASS (CXXXView), CSize (600, 0), pContext))
return FALSE;
return TRUE;
}
其中RUNTIME_CLASS (CXXXView)确定了拆分窗口的类,可以自定义。
第二步,新建类CXXXView,基类可以是CVIEW或其子类,如CTreeView,CScrollView等等。还有记得在MainFrm.cpp中添加相应的新类头文件和CSplitterWnd类型的变量(如上例中的m_wndSplitter)。
这样就基本可以了,其他的就和单文档单视图差不多,像修改窗口的风格的话可以在PreCreateWindow中修改cs.style实现。比较特别的是为菜单项在某窗口类添加的响应函数时,只有在该窗口处于激活状态,菜单项才有效。具体的解决方法还没找到,大家知道的请不吝赐教啊。好在我们还有框架类,文档类可以用。
2.属性表
属性表我一般用来做数据输入用,和对话框差不多。步骤感觉也不是很复杂。
第一步,为属性表页创建新类CXXXPage,继承CPropertyPage,并关联相应的对话框模板,注意到属性表提供了OK和CANCEL按钮,所以作为属性页表的对话框模板不应再包含这两种按钮。在对话框模板上的控件可以关联CXXXPage中的变量,用来做输入用也不错的。
第二步,为属性表创建新类CXXXSheet,继承CPropertySheet,并添加相应的CXXXPage类型变量(如m_xxxPage),在类CXXXSheet构造函数中添加
AddPage(&m_xxxCarPage);
从而将属性表页和属性表联系起来,记得有多少个属性表页就添加几次,还有两个构造函数都要添加AddPage代码。
第三步,最后可以在文档类中DoModal创建模式属性表。基本OK了。
(未完待续)
- 几种常用的MFC界面编程技巧
- 几种常用的布局技巧
- c++几种常用的界面控件的使用1
- 常用的几种VS编程插件
- VC常用几种界面库的选择
- Android界面布局的几种常用方式
- MFC几种按钮的应用(编程笔记)
- MFC界面与控件编程常用函数记录
- 工作中常用的几种sql优化技巧
- Altium Designer的几种常用布线技巧
- 几种常用编程语言的编程思想和方法
- android几种常用界面切换效果
- MFC界面编程新思路--模仿MATLAB式的界面
- C++/MFC-几种常用控件
- MFC界面编程
- MFC 界面编程
- VC++ 的常用编程技巧
- 几则常用的BASIS技巧整理
- 数据库设计中的14个技巧
- C语言编译过程
- web.xml中的三种写法
- The new start of the ConfusedBird
- MySql-Front 输入不了中文 解决了
- 几种常用的MFC界面编程技巧
- Windows重装导致Ubuntu无法启动,Grub信息丢失的解决方法
- SQL Server JDBC Driver配置方法(图文讲解)
- flashback使用记录
- 基于Agent的计算经济学的经典期刊和基本技能要求
- 用Vim搭建C/C++开发环境
- 使用JDBC连接sqlServer指定(或非默认)实例
- 神经网络之一
- MyEclipse 8.0正式版发布+高速下载以及安装+注册码+破解+升级 100%可用!