为什么我的窗口指针老是传入不了非类函数里?------------------------------------------------------------------?

god_sun 2007-05-10 03:24:08
void CDataImprotDlg::OnRun()
{
// TODO: Add your control notification handler code
.........
.........
CWnd *cwd;
cwd = this->GetActiveWindow ();
hRunThread = CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE)&pRunThread, cwd, 0, &dwRunThreadID);
}

UINT pRunThread (LPVOID pp)
{
HWND hWnd;
CWnd* cnd = (CWnd*)pp;

hWnd = cnd-> GetSafeHwnd();
CListBox * aa;
aa= (CListBox *)GetDlgItem (hWnd, IDC_LISTINFO);
aa->AddString ("rrrrr"); //郁闷了.老是报错.
}

_________________________________________________________________________
到底怎么把当前窗口的指针传到pRunThread,也是就是CDataImprotDlg的指针.
或许传句柄更方面..
pRunThread 里面GetDlgItem 有两个参数.非要传入一个句柄.
...全文
163 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wltg2001 2007-05-10
  • 打赏
  • 举报
回复
aa = (CListBox *)GetDlgItem (hWnd, IDC_LISTINFO);
这句是不是有问题,将一个句柄硬转成一个MFC类能成功吗?改成这样试试:
SendDlgItemMessage(hWnd,IDC_LISTINFO,....)试试.

god_sun 2007-05-10
  • 打赏
  • 举报
回复
改成这样传入
hRunThread = CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE)&pRunThread, GetSafeHwnd(), 0, &dwRunThreadID);


UINT pRunThread (LPVOID pp)
{
CData_Import *clsDI;
clsDI = new CData_Import;
timer = time(NULL);
HWND hWnd = (HWND) pp;
CListBox * aa;
aa = (CListBox *)GetDlgItem (hWnd, IDC_LISTINFO);
aa->AddString ("rrrrr"); //这里调试的时候aa = 0x000a06e0 {CListBox hwd =???} 还是报错.救命啊......

}
wltg2001 2007-05-10
  • 打赏
  • 举报
回复
hRunThread = CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE)&pRunThread, cwd, 0, &dwRunThreadID);
不要传MFC对象指针给一线程函数,不安全,传句柄,改成:
hRunThread = CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE)&pRunThread, GetSafeHwnd(), 0, &dwRunThreadID);
god_sun 2007-05-10
  • 打赏
  • 举报
回复
谢了3楼. 2楼请问能具体说下吗?什么意思?
smaltdd 2007-05-10
  • 打赏
  • 举报
回复
完全同意ouyh12345(五岭散人)

这是最保障的做法,安全不容易出问题
livedeal 2007-05-10
  • 打赏
  • 举报
回复
hRunThread = CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE)&pRunThread, this->m_hWnd, 0, &dwRunThreadID);
ouyh12345 2007-05-10
  • 打赏
  • 举报
回复
不要直接操作其它类里的变量,弄个函数

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧