我想建立一个基于CPropertySheet的程序,怎么弄?

dwh7875 2003-08-25 12:43:27
框架应该是基于dialog吧,因为没有CPropertySheet可选
然后让视图类多重继承?(向导能不能搞多重继承?)
然后呢?

要么?在基于dialog的视图类中,create一个CPropertySheet对象?
但是CPropertySheet对象的初始位置怎么确定呢?
还有他怎么实现最大最小呢?
...全文
34 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
darkhawk 2003-08-25
  • 打赏
  • 举报
回复
其实可以不用动态创建属性页的,可以在构造函数中初始化属性页成员变量。
darkhawk 2003-08-25
  • 打赏
  • 举报
回复
基于CPropertySheet不可以,但是可以变通以下:
在对话框的Initial函数中显示属性页,然后在Initial函数返回之前调用对话框的DestroyWindow函数,这样从外部看来就是基于属性页的了,没有出现任何对话框
bager 2003-08-25
  • 打赏
  • 举报
回复
建立基于Dialog的程序框架;
Project/Add to Project/Components and controls,启动Components and controls Gallery
选择查找范围为VC++ Components,在列表框中选择Property Sheet,点击Insert,然后按照向导去做就可以了。
fengqinggao 2003-08-25
  • 打赏
  • 举报
回复
建立基于Dialog的程序框架;
建立你想要的CPropertySheet类和CPropertPage类,然后在CApp类的InitInstance()函数中,将原来的定义 dlg 变量的类型改为你的CYourSheet类,就应该可以了
dwh7875 2003-08-25
  • 打赏
  • 举报
回复
可以,不要封装太多,能让我看懂,会用
jennifergiant 2003-08-25
  • 打赏
  • 举报
回复
give you a class,want?
向导对话框 向导对话框实际上是一种特殊的属性表,和属性表不同的是,它能使用按钮来完成从一页到另一页的移动,而不是使用选项卡。我们用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();

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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