我在MFC中用到多线程,在其中一个线程函数中用到SetDlgItemText()函数,但是出现错误error C2065: 'SetDlgItemText' : undeclared identifier。改为 ::SetDlgItemText()后出现'SetDlgItemText' : is not a member of '`global namespace''错误,还请哪位高手指教?谢谢
解决方案 »
- 求VC中关于读取 Excel 数据的问题
- 高手:Accpet执行shutdown(sock, SD_SEND)能gracefully closed,为什么AccpetEx执行shutdown不行
- 求 icon 到 bmp 转换的类。
- 线程通讯的简单问题。
- 程序中使用了Microsoft DataGrid Control 6.0(OLEDB),该控件默认为两列,请问怎么为其加上几列呢?(用代码或设置控件属性均可)
- 用domodel()生成一个对话框,关闭后,为何不能再重新生成了?
- 想在ListControl一行里面显示两行的内容……
- 有没有办法在可执行文件运行时修改其本身?
- 这样写客户端会不会有问题?---------------在线等
- 请问哪儿有<<visual c++5.0 开发技术内幕(机械工业出版社)>>下载?谢谢!!!
- 初级ATL问题,页面调用ATL控件?
- 无语,散一个
正解。也可以传入对话框窗口的句柄, ::SetDlgItemText(HWND hDlg, int nIDDlgItem, LPCTSTR lpString);
这样用时,需要在你的线程文件中包含头文件:Windows.h
GetDlgItem(IDC_MY_EDIT)->SetWindowText("abc");
线程函数声明:void ThreadFunc(LPVOID);
void ThreadFunc(LPVOID lparam)
{
m_bRun=true;//线程是否在运行
CTime time;
CString strTime;
while(m_bRun)
{
time=CTime::GetCurrentTime();
strTime=time.Format("%H:%M:%S");
((CWnd*)lparam)->SetDlgItemText(IDC_TEXT,strTime);
//尤其注意这一句,作类型转换
Sleep(1000);
}
}