您的位置:首页 > 其它

使用属性对话框的一些经验

2004-11-08 18:29 309 查看
1.去掉Apply Now按钮
m_psh.dwFlags |= PSH_NOAPPLYNOW;

2.控制OK、Cancel、Appliy Now、Help按钮
很简单,它们的ID分别为
IDOK、IDCANCEL、ID_APPLY_NOW、IDHELP

3.将属性页上所有的控件都映射到一个值的成员变量上去,这样才能在对控件进行初始化,才能在属性对话框关闭但还没销毁时获取控件的值

4.从一个Page传递消息到其它Page
该Page调用QuerySiblings((WPARAM)sth1, (LPARAM)sth2);

然后在想接受和处理该消息的Page中添加对事件PSM_QUERYSIBLINGS的处理函数,具体如下:
afx_msg BOOL OnQuerySiblings(WPARAM wParam, LPARAM lParam);
ON_MESSAGE(PSM_QUERYSIBLINGS, OnQuerySiblings)
BOOL COnePage::OnQuerySiblings(WPARAM wParam, LPARAM lParam)
{
}
若若该函数返回非零值,则消息传递就停止了

5.设置PropertyPage标题的三种方法
(1)创建时传入字符串资源ID
m_pPage1 = new CMyPropertyPage(IDS_MYCAPTION);
(2)修改CPropertyPage.m_psp
m_pPage1->m_psp.dwFlags |= PSP_USETITLE;
m_pPage1->m_psp.pszTitle = _T("My Caption");
注意:这种修改只能在CPropertySheet的Create和DoModal之前进行;
如果是从文件中读出一个字符串来进行设置,最好把这个字符串放在一个静态字符数组里面,例如
static char strTitle[32];
m_pPage1->m_psp.pszTitle = strTitle;
(3)CTabCtrl::SetItem()
CTabCtrl* pTab = GetTabControl();
TC_ITEM ti;
ti.mask = TCIF_TEXT;
ti.pszText = pszText;
pTab->SetItem (nPage, &ti);
注意:这种方法可以在CPropertySheet的实例被创建之后进行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: