CPropertyPage和CPropertySheet使用一问

freshleaf_ 2005-03-11 09:16:47
在用的时候怎样让界面出现的切换属性页的按钮
让它的样式不是按钮,而是类似于excel中切换页面的那种
...全文
166 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
老夏Max 2005-03-11
  • 打赏
  • 举报
回复
使用Tab控件可以参考:
http://www.codeproject.com/tabctrl/foldertabcontrol.asp
http://www.codeproject.com/tabctrl/AMCustomTabCtrlDemo.asp
pomelowu 2005-03-11
  • 打赏
  • 举报
回复
Using Images with Tab Labels
To use images with the tab labels, first you have to create a CImageList class with the images you want to use in the tab control. For the using SetItem method of the CTabCtrl class, you should set the images of the items. Here is an example:

BOOL CMyPropSheet::OnInitDialog ()
{
BOOL bResult = CPropertySheet::OnInitDialog();

m_imageList.Create (IDB_MYIMAGES, 13, 1, RGB(255,255,255));
CTabCtrl *pTabCtrl = GetTabControl ();
pTabCtrl->SetImageList (&m_imageList);

TC_ITEM item;
item.mask = TCIF_IMAGE;
for (int i = 0; i < NUMBER_OF_TABS; i++)
{
item.iImage = i;
pTabCtrl->SetItem (i, &item );
}

return bResult;
}

老夏Max 2005-03-11
  • 打赏
  • 举报
回复
原始的CPropertyPage和CPropertySheet肯定不能满足你的要求!需要自画!
可以参考例子:
http://www.vchelp.net/cndevforum/subject_view.asp?subject_id=93271&forum_id=52
这个例子中的Tab就是自画的,它是根据鼠标点击的位置确定显示的Dialog的。
向导对话框 向导对话框实际上是一种特殊的属性表,和属性表不同的是,它能使用按钮来完成从一页到另一页的移动,而不是使用选项卡。我们用MFC AppWizard(exe)来建立新的程序时,就是用向导对话框完成的整 个过程,图3.7.1就是这个过程的 第一步,点击Next到下一步。 由于向导是一种特殊的属性表, 因此与其对应的MFC类也是属性 表类CpropertySheet和属性页类 CpropertyPage,在向导程序中,属 性表的创建方法没有改变,只是在 调用DoModel函数之前应调用 SetWizardMode(设置向导模式)函数, 图3.7.1 建立新项目过程的第一步 将属性表的操作方式设置为向导模式。 在向导模式下,每一个属性页都有Back、Next、Cancel按钮,由于每次显示向导的特定页时,MFC自动调用OnSetActive()(设置活动页函数)函数,因此我们可以重载OnSetActive函数,在此函数中利用SetWizardButton(设置属性页按钮显示方式)设置希望出现的按钮,在向导程序的最后一页,可以通过用SetFinishText(设置Finish命令按钮中的文本)设置Finish按钮所显示的文字,同时隐藏”上一步(Back)”按钮和”下一步(Next)”按钮。 例3.28 创建向导对话框 (1)创建一个基于对话框的应用程序,名为:向导对话框 (2)创建属性页对话框和属性页对话框类并添加相应的消息映射函数 1)Insert ResourceDialogIDD_PROPPAGE_MEDIUMNew,创建了第一个对话框,将其ID改为:IDD_STEP1,将其Language属性设置为Chinese[P.R.C]。并为该对话框建类,类名为:Cpage1,基类为:CpropertyPage。 2)删除对话框上的原有控件,在控件工具栏中拖到对话框一个静态文本,静态文本的属性Caption处写:第一个对话框,再拖过一个静态图片控件,将一个.bmp图形Import(导入)到程序中,再把这个图形加到这个图片控件上,如图3.7.2所示。 利用ClassWizard为类Cpage1增加消息映射函数OnSetActive,在此函数中激活Next按钮,代码如下: BOOL Cpage1::OnSetActive() { CPropertySheet *pSheet=(CPropertySheet *)GetParent(); ASSERT_KINDOF(CPropertySheet,pSheet); pSheet->SetWizardButtons(PSWIZB_NEXT); return CPropertyPage::OnSetActive();

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧