请问一个访问对话框的小问题
大家好,我是一个VC初学者。
我在工程中加入了一个对话框,并为他建立了一个类
同时在对话框中加入了一个static text控件
我想在我的“另一个文件”中用下句改变static text控件的内容
GetDlgItem(IDC_Cap)->SetWindowText("hello!");
可是总是出现
error C2660: 'GetDlgItem' : function does not take 1 parameters
error C2227: left of '->SetWindowTextA' must point to class/struct/union
而我将GetDlgItem(IDC_Cap)->SetWindowText("hello!");
放在BOOL CTestDlg::OnInitDialog()函数中就能够正确显示
在“另一个文件”中我也已经将对话框类的头文件加入了,请问是怎么回事?
问题点数:20、回复次数:6Top
1 楼Y___Y(一叶障目)回复于 2006-12-03 18:32:58 得分 4
::GetDlgItem(你对话框句柄,IDC_Cap)就行了Top
2 楼liuqiyc(cyiquil)回复于 2006-12-03 19:00:25 得分 8
放在BOOL CTestDlg::OnInitDialog()函数中就能够正确显示
-----------------------------
因为CTestDlg有只带一个参数的GetDlgItem(int nID )
在“另一个文件”中报错
-----------------------------
因为“另一个文件”中的类没有只带一个参数的GetDlgItem(int nID ),所以编译器认为使用的是API函数 HWND GetDlgItem(HWND hDlg,int nIDDlgItem);
你可以向楼上这样做,或者把 static 控件所在对话框 CTestDlg 的指针传给“另一个文件”,然后 dlg->GetDlgItem(IDC_Cap)->SetWindowText("hello!");
Top
3 楼shl6894(越学越无知)回复于 2006-12-03 19:05:57 得分 4
#include "CTestDialog.h"
在你需要改变字体的地方
CTestDialog dlg;
dlg.GetDlgItem(IDC_Cap)->SetWindowText("hello!");Top
4 楼zhshgap(努力学习)回复于 2006-12-03 21:28:31 得分 4
在CWND 环境下才能用GetDlgItem(IDC_Cap)
否则加上::Top
5 楼JuZhen()回复于 2006-12-04 08:58:23 得分 0
谢谢各位高手回答!
最后我把指针传给了"另一个文件",成功实现。
Top
6 楼xyz666((我是一只怪怪虫up ~up))回复于 2006-12-04 09:00:01 得分 0
同意Top




