[问题] 如何在线程中调用 Dlg 中的 函数? 在 Dalog base 的 PROJECT 中, 在线程中如何才能调用 Dlg 中的控件和函数? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把dlg的指针作为线程的参数,即创建线程的时候如下:AfxBeginThread(threadname, this); 应该传窗口句柄this->hWnd1、在线程里:CDlg::FromHandle(hWnd);2、要被调用的函数:static flyelf(空谷清音) 说的是正确答案。 哦,是不是说AfxBeginThread会把handle映射到线程里去?? 我正好在编写这样的程序。有以下2点体会:1。 不能传递句柄 调用pDlg = CDialog::FromHandle(hDlg)之后,pDlg并不等于传递之前的this。 VC只是构造了一个新的dialog对象。所以用pDlg作为指针访问成员变量或者成员函数,会得到意想不到的结果。2。 原来线程的基于消息的函数,不能在新线程里边调用 每个线程都有一个消息队列。他们之间并无联系,互不干涉。 不难, 只需要将该线程声明为对话框的友员函数就可以了。 在dlg的类体中声明: inline UINT MyThread(LPVoid pParam); C++进阶提高 急急急!!!ADO Connection 连接,出现 无效指针 关于动态连接SQL问题 500分求《the NURBS book》 TRACE可不可以在控制台程序中用? 用SDK怎摸加载菜单到指定窗口,菜鸟请高手指教 那位大虾知道如何链接dbase5数据库????? 关于重载赋值运算符!(30分相送) 迷茫中.....给个建议:辞还是不辞 老问题了 net send的原理 大家来谈谈字符集和unicode的问题吧!
AfxBeginThread(threadname, this);
1、在线程里:
CDlg::FromHandle(hWnd);2、要被调用的函数:
static
1。 不能传递句柄
调用pDlg = CDialog::FromHandle(hDlg)之后,pDlg并不等于
传递之前的this。 VC只是构造了一个新的dialog对象。所以用pDlg
作为指针访问成员变量或者成员函数,会得到意想不到的结果。2。 原来线程的基于消息的函数,不能在新线程里边调用
每个线程都有一个消息队列。他们之间并无联系,互不干涉。
在dlg的类体中声明:
inline UINT MyThread(LPVoid pParam);