怎样在程序中修改属性表中Tab页的标题? 怎样在程序中修改属性表中Tab页的标题? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用SetWindowText()函数(注意是在你希望变动的那个CPropertyPage中) 拿程序来看[email protected] GetTabControl()获得CTabCtrl对象指针然后再用CTabCtrl的SetItem()方法 我碰到过类似问题,链接如下:http://expert.csdn.net/Expert/topic/2186/2186005.xml?temp=.353512以下为实现步骤:1、对CMyPropertySheet类添加一成员函数声明public: void SetPageTitle(int nTabIndex, CString strTitle);实现void CMyPropertySheet::SetPageTitle(int nTabIndex, CString strTitle){ CTabCtrl* pTab = GetTabControl(); ASSERT (pTab); TC_ITEM ti; char szText[1024]; ti.mask = TCIF_TEXT; ti.pszText = szText; ti.cchTextMax = 100; VERIFY (pTab->GetItem (nTabIndex, &ti)); strcpy(szText, strTitle.Left(1023)); VERIFY (pTab->SetItem (nTabIndex, &ti));}2、覆盖PropertySheet类的OnInitDialogBOOL CMyPropertySheet::OnInitDialog() { BOOL bResult = CPropertySheet::OnInitDialog(); SetPageTitle(0,"Page One"); SetPageTitle(1,"Page Two"); SetPageTitle(2,"Page Three"); SetPageTitle(3,"Page Four"); //我在构造函数中向测试程序中追加了四个属性页 //你根据实现情况适当调用SetPageTitle(...,...); return bResult;} 谢谢各位,我是这样写的,编译通过,运行时出现严重错误。/* BOOL CmypropertySheet::OnCreate(LPCREATESTRUCT lp) { if(CPropertySheet::OnCreate(lp)==-1) return -1; CString str="aaaa"; TC_ITEM tc; tc.mask= TCIF_TEXT; tc.pszText = (LPTSTR)((LPCTSTR)str); GetTabControl()->SetItem(0, &tc ); return 0; }*/另:PorpertySheet 有 OnInitDialog()吗? CPropertySheet没有由于它是CWnd的子类.而CPropertyPage有,因为它是CDialog的子类.请注意,你的方法是要求你在CPropertyPage中做,而不是CPropertySheet中做. CPropertySheet没有由于它是CWnd的子类.而CPropertyPage有,因为它是CDialog的子类.请注意,我的方法是要求你在CPropertyPage中做,而不是CPropertySheet中做 SetWindowText()我就是在CPropertyPage中做的,在其OnInitDialog()中使用,可是根本就不能改。 新建窗口最小化显示 运行几十个线程,占用内存一直慢慢的增大 如何随机生成一个指定长度的字符串 客户连接服务端的问题!!!!!!!!!!!!!! 有关DLL里创建无模式对话框不响应PreTranslateMessage的问题? 请问大伙们有没有可能反编译看dll里面的程序呢? 急!一个菜鸟的问题! 头文件声明问题 CSplitterWnd的分割条能否禁止移动? D3D写3D界面的缩放问题如何解决? 一个不明不白的问题 Win32程序子窗口如何子类化?(不用MFC)
然后再用CTabCtrl的SetItem()方法
http://expert.csdn.net/Expert/topic/2186/2186005.xml?temp=.353512以下为实现步骤:1、对CMyPropertySheet类添加一成员函数
声明
public:
void SetPageTitle(int nTabIndex, CString strTitle);
实现
void CMyPropertySheet::SetPageTitle(int nTabIndex, CString strTitle)
{
CTabCtrl* pTab = GetTabControl();
ASSERT (pTab);
TC_ITEM ti;
char szText[1024];
ti.mask = TCIF_TEXT;
ti.pszText = szText;
ti.cchTextMax = 100;
VERIFY (pTab->GetItem (nTabIndex, &ti));
strcpy(szText, strTitle.Left(1023));
VERIFY (pTab->SetItem (nTabIndex, &ti));
}2、覆盖PropertySheet类的OnInitDialog
BOOL CMyPropertySheet::OnInitDialog()
{
BOOL bResult = CPropertySheet::OnInitDialog();
SetPageTitle(0,"Page One");
SetPageTitle(1,"Page Two");
SetPageTitle(2,"Page Three");
SetPageTitle(3,"Page Four");
//我在构造函数中向测试程序中追加了四个属性页
//你根据实现情况适当调用SetPageTitle(...,...);
return bResult;
}
/* BOOL CmypropertySheet::OnCreate(LPCREATESTRUCT lp)
{
if(CPropertySheet::OnCreate(lp)==-1)
return -1;
CString str="aaaa";
TC_ITEM tc;
tc.mask= TCIF_TEXT;
tc.pszText = (LPTSTR)((LPCTSTR)str);
GetTabControl()->SetItem(0, &tc );
return 0;
}*/
另:PorpertySheet 有 OnInitDialog()吗?