程序里建立了几个线程
又建立了个Dialog并给该Dialog建立了个类CMYDialog
现在想在程序的子线程里发信息(字符)给这个CMYDialog
此时这个CMYDialog已经被我非模态打开
我知道两中线程发送消息的方法
1,这个我只会得GetMainWnd(),不知道怎样应用与自己新建立的类(CMYDialog)???
CXXDlg *dlg=(CXXDlg*)AfxGetApp()->GetMainWnd();
dlg->m_treectrl.........
2,使用PostMessage,这个用起来麻烦,没有第一个爽,而且我也
CMyFileDlg *dlg;
dlg->PostMessage(WM_MYTREECTRLADD,0,(LPARAM)str);我现在就是
怎样把第一个方法用于自己的新建立的类??
或则有其他更简单的方法???
又建立了个Dialog并给该Dialog建立了个类CMYDialog
现在想在程序的子线程里发信息(字符)给这个CMYDialog
此时这个CMYDialog已经被我非模态打开
我知道两中线程发送消息的方法
1,这个我只会得GetMainWnd(),不知道怎样应用与自己新建立的类(CMYDialog)???
CXXDlg *dlg=(CXXDlg*)AfxGetApp()->GetMainWnd();
dlg->m_treectrl.........
2,使用PostMessage,这个用起来麻烦,没有第一个爽,而且我也
CMyFileDlg *dlg;
dlg->PostMessage(WM_MYTREECTRLADD,0,(LPARAM)str);我现在就是
怎样把第一个方法用于自己的新建立的类??
或则有其他更简单的方法???
解决方案 »
- OPENFILENAME问题,急急急!
- 程序运行时,变得没响应了,运行结束才能操作,怎么处理阿?
- 钩子问题~!
- 近期要做串口监听modem接收数据信息有没有做过PPP协议的兄弟给个指导,分不够再加
- 全局HOOK在2000下没问题,怎么98下老是有问题,(不能HOOK到winspool.drv里的函数),该如何解决,斑竹来帮忙
- 用vc还是cbc新手疑问
- 请问在ADO编程中,捕获了_com_error异常后,还需要检查HRESULT返回值吗?
- 能说说清华和北大里面那些喜欢写程序的人功底如何吗??
- CButton::SetIcon()如何使用16*16*256的图标?
- 关于sprintf()和FILE *fp
- MDI 中如何激活已打开的窗口
- 如何固定组合框下拉列表的高度,高手指点一下
我在CMYDialog非模态打开,用个全局变量或则结构体来保存它的窗口句柄
总觉得很麻烦(我比较懒)
第一个,有可能将线程转变成UI线程,而且变量全局的或是static的,你就不感觉麻烦了?
第二个,postmessage交给主线程不是很好吗?
现在就是要窗口句柄
我原先以为
1,用全局HWND hwnd; (CXXDLg 头文件中)
2,用结构体
typedef struct
{
HWND hwnd;
}MYSTRUCT;
MYSTRUCT mm;
然后在CMYDialog类建立后在其构造函数里
hwnd=m_hWnd;或则 mm.hwnd=m_hWnd;
这样就可以得到窗口句柄了
可都提示: ...undeclared identifier怎么解决啊
大家帮忙啊
我不是要把消息交给主线程啊
我是要把消息教给自己一个新建立的类 CMYDialog啊
郁闷,原先以为挺简单的,没想到这么麻烦
郁闷,原先以为挺简单的,没想到这么麻烦
===========================================
用FindWindow应该是获取窗口句柄最好、也是最简单的做法,而且也最安全,因为只有对话框存在时才能取到。另外用它根本不麻烦:FindWindow(NULL,"对话框的标题")