CPropertySheet 与CPropertyPage 的基本使用
来源:互联网 发布:淘宝秒杀图片 编辑:程序博客网 时间:2024/05/17 01:05
CPropertySheet 与CPropertyPage 的基本使用
今天花了相当长的时间来搞这个MFC中的两个类,
原来自己在做TAB类型的窗口时,都是在窗口中增加一个CTabCtrl来实现 的,研究了下这个,网上有好多都不怎么详细,自己是对它们的总结吧。
CPropertyPage 是一个从CDialog派生而来的一个类,基本功能与对话框类一样,
CPropertySheet不是一个CDialog的派生类,他是派生自CWnd的,其实它就是一个CDialog上加了一个CTabCtrl的组合类
现在来介绍它的使用。
(1)首先按一般的方法来建立一个基于对话框的MFC程序。这里我叫CProDlg
(2)现在新那两个对话框资源,把它们的属性设为CHILD和THIN,最好CAPTION也有个,分别为它们绑定一个类,这个类要选 为CPropertyPage (当然是CDialog也行,不过这里我介绍这个)
分别命名为CPage1,CPage2
(3)使用向导新建一个MFC类,名字为CMySheet类,父类当然选CPropertySheet。
(4)现在在CProDlg中添加三个指针变量(变量也行是,不过在生成对象时不用new)
分别为:
CMySheet* m_sheet;
CPage1* page1;
CPage2* page2;
在CProDlg的构造函数中加入
m_sheet = new CMySheet(_T("SHEET"));
page1 = new CPage1;
page2 = new CPage2;
然后初始化
BOOL CProDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
//property sheet
m_sheet->AddPage(page1);
m_sheet->AddPage(page2);
m_sheet->Create(this, WS_CHILD | WS_VISIBLE , 0);
m_sheet->ModifyStyle(0, WS_TABSTOP | TCS_BOTTOM);
m_sheet->ModifyStyleEx(0, WS_EX_CONTROLPARENT);
CTabCtrl* pTab = m_sheet->GetTabControl();
TCITEM tcitem;
for( int i = 0; i < 2; i++)
{
pTab->SetItem(i, &tcitem);
}
CRect rcSheet;
GetClientRect(&rcSheet);
TRACE(_T("width: %d, height: %d\n"), rcSheet.Width(), rcSheet.Height());
m_sheet->SetWindowPos(NULL, rcSheet.left, rcSheet.top, rcSheet.Width(), rcSheet.Height(),
SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE);
m_sheet->SetActivePage(0);
}
现在就可以了,是不是达到了跟原来使用CDialog+CTabCtrl同样的效果呢。
正所谓一题多解嘛
这里,提示下,现在CPropertySheet的大小还不合适,
思路如下:
为CMySheet重载OnInitDialog()
在里面使用MoveWindow来达到控制PropertySheet大小的目的
===================================================================
有什么问题可以留言,或者HI我,我会找时间与大家交流的
- CPropertySheet 与CPropertyPage 的基本使用
- CPropertySheet 与CPropertyPage
- 关于MFC:CPropertyPage 与CPropertySheet
- 关于属性页或向导的使用(CPropertySheet,CPropertyPage)
- 更改CPropertySheet中CPropertyPage的文本
- CPropertySheet和CPropertyPage
- CPropertySheet和CPropertyPage
- CPropertySheet和CPropertyPage介绍
- 怎样使用CPropertyPage类和CPropertySheet类创建属性表
- CPropertySheet 和 CPropertyPage (帮助文档的调用问题)
- CPropertySheet标签页 实现各个CPropertyPage页面之间的切换
- CPropertySheet的基本用法
- MFC中CPropertySheet与CTabCtrl的使用
- MFC中CPropertySheet与CTabCtrl的使用
- MFC中CPropertySheet与CTabCtrl的使用
- MFC中CPropertySheet与CTabCtrl的使用
- mfc利用CPropertySheet、CPropertyPage实现下一步,下一步的类似安装程序的界面
- CPropertySheet和CPropertyPage中数据交换时的两种处理手段
- Android复习之SeekBar进度条
- 指针数组和数组指针
- webview 乱码
- input_allocate_device浅析
- 路透社裁撤全球体育图片编辑
- CPropertySheet 与CPropertyPage 的基本使用
- Ubuntu package system is broken.
- 8种Nosql数据库系统对比
- 旋转数组的最小数字(改进版算法)
- this is my home
- python类库
- ubuntu 查询内存以及cpu的使用情况
- JAVA中排序算法(冒泡排序、选择排序、插入排序、快速排序)
- cvHaarDetectObjects函数与人脸识别等应用