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

王朝vc·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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的实例被创建之后进行

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航