• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

使用属性页 property page 组件时, 如果控制 “确定”、“取消”, “应用”、 “帮助” 按钮?

shenliwen 2002-05-13 10:53:41
在资源编辑器里是看不到它们的。
怎么处理他们呢?
比如说我想修改它的名称。
谢谢!
...全文
13 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
tagger 2002-05-14
Good,那如何改变属性页的大小呢?
回复
Panghuang 2002-05-14
支持
回复
shenliwen 2002-05-14
谢谢 SS15!
回复
SGUav 2002-05-13
以前我写的,见笑了

如果仅仅是满足于现成提供的属性表,不仅毫无个人特色,而且有一些自己用不着的功能。例如属性表上的 Apply、Help 按钮,就并不是每一个应用程序都能用的上的。在这种情况下,就应当设法在属性表上不显示这些按钮。否则,程序会给人一种粗糙的感觉。但问题就在于,作为属性表的对话框并不像一般的对话框那样可以在对话框编辑器中进行可视化的设计,所以也就不好对上面的各个按钮采取操作。
在很多书籍中都提到一种隐藏 Help、Apply 两个按钮的方法,那就是在属性表的构造函数中加入语句:m_psh . dwFlags |= PSH_NOAPPLYNOW; 用于隐藏 Apply 按钮。
在属性表构造函数中加入语句:m_psh . dwFlags &= ~PSH_HASHELP; 再在每一个属性页派生类中加入语句:m_psp . dwFlags &= ~PSP_HASHELP; 用于隐藏 Help 按钮。
使用上面的方法,不太容易理解并且略显繁琐,这里还有另外一种隐藏这两个按钮的方法,就是在属性表的 OnInitDialog( ) 函数中通过调用函数 GetDlgItem( ) 取得指向 Help 或 Apply 按钮的指针,随后又由该指针调用函数 ShowWindow( ) 即可隐藏这两个按钮。这样做的关键就在于:
一.重载属性表的 OnInitDialog( ) 函数;
二.获取属性表上这四个按钮的 ID。
重载属性表的 OnInitDialog( ) 函数,需要自属性表类 CMyPropertySheet 的类实现文件中通过右键单击的方式进入 ClassWizard。进入 ClassWizard 后,在左边的 Object IDs 列表框中选定 CMyPropertySheet (事实上这也是唯一的选项),在右边的 Messages 列表框中选定 OnInitDialog 选项,点击 Add Function 按钮完成了对函数OnInitDialog( ) 的重载。记住,通过重载属性表的 OnInitDialog( ) 函数,进而在该函数中采取近一步的操作
而属性表上缺省提供的四个按钮的 ID 分别为 IDOK、IDCANCEL、IDHELP、ID_APPLY_NOW。由以上 ID 值即可进行 隐藏 / 显示、使有效 / 使无效等操作。
以下就是利用重载 OnInitDialog( ) 函数将"帮助" 、"应用"的 OnInitDialog( ) 函数代码:
BOOL CMyPropertySheet::OnInitDialog()
{
BOOL bResult = CPropertySheet::OnInitDialog();
// TODO: Add your specialized code here
// my code start here
GetDlgItem(IDHELP) -> ShowWindow(FALSE);
GetDlgItem(ID_APPLY_NOW) -> ShowWindow(FALSE);
// my code end
return bResult;
}
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2002-05-13 10:53
社区公告

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