怎么让dll发送消息给调用它的主窗口?我没有用MFC类,所以,不能传递CWnd指针了。 这个很麻烦啊。我编写了一个ADSL拨号的DLL,可是我不知道怎么发消息给调用它的主程序。请教大家,以后做出来后,将发布代码,虽然我的代码写的很烂 ^_^ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为我要将ADSL的各个状态发送到调用它的主程序中,以前一直用CWnd做为指针,调用的时候,先传递这个指针就可以了,然后 m_pMainWnd->PostMessage(...);现在不用MFC类做了,我就不知道怎么做了,查了半天,C++里面根本没有这个对应的CWnd类。难道直接用PostMessage,我又不会,因为:PostMessage参数中有一个HWND参数,我该怎么设置这个参数呢?我现在并不知道主窗口的HWND指针啊。以前一直用MFC,真是害人啊。 你使用HWND这个窗口句柄类型代替CWnd类不就行了吗?在CWnd类中的m_hWnd就是这种类型的成员变量。用HWND类型对应着Windows系统创建的每个窗中的句柄的类型,因此,你可以使用Api函数postmessage来发送的你的消息。 可以用FindWindow找到目标窗口,然后用PostMessage来发送消息或者在你的dll提供一个接口,该接口用于注册接收消息的窗口句柄,这样就获得了界面的窗口句柄,就可以用PostMessage了 可以这样不?.h中:HWND hWnd;.cpp中void SetHwnd(HWND hwnd){ hWnd=hwnd;}...PostMessage(hWnd,MYMESSAGE,lParam,wParam);主程序中:SetHwnd(this);我总觉得传递的不是指针,可能会有问题吧。行吗?盼望哪位老大给点代码,谢谢。 CWnd和HWND应该都可以互相转换 没有CWnd指针,你可以传递HWND句柄! 应该这样。主程序中:SetHwnd(this->m_hWnd); SetHwnd(this);应该改成:SetHwnd(this->m_hWnd); 也可以用回调函数阿。在主窗口内注册一个回调函数,在调用dll的时候把这个回调函数的地址传进去,以后如果dll要给主窗口发消息的时候,用调用这个回调函数代替。 (散分)向为大阅兵作出奉献的人致敬! 网络编程中关于send & recv 的问题 CString 转换成数组的问题,请前辈帮忙 (100分献上,路过有分)大家看看我这水平能不能找到份程序员工作? 多个线程可以同时做一件同样的事情吗? 如何显示和隐藏IDR_MAINFRAME菜单中的某一个子菜单,我的代码有没有问题 错在哪? 有关CreateProcess或ShellExecute 如何调用在DLL中定义的类?? ??????????有劳了! 谁有 BMP 或 JPG 24位 转成 JPG 8位256的程序。。 关于 记时器的问题 请大家帮助
m_pMainWnd->PostMessage(...);
现在不用MFC类做了,我就不知道怎么做了,查了半天,C++里面根本没有这个对应的CWnd类。
难道直接用PostMessage,我又不会,因为:
PostMessage参数中有一个HWND参数,我该怎么设置这个参数呢?我现在并不知道主窗口的HWND指针啊。
以前一直用MFC,真是害人啊。
或者在你的dll提供一个接口,该接口用于注册接收消息的窗口句柄,这样就获得了界面的窗口句柄,就可以用PostMessage了
HWND hWnd;
.cpp中
void SetHwnd(HWND hwnd)
{
hWnd=hwnd;
}
...
PostMessage(hWnd,MYMESSAGE,lParam,wParam);主程序中:
SetHwnd(this);我总觉得传递的不是指针,可能会有问题吧。行吗?
盼望哪位老大给点代码,谢谢。
主程序中:
SetHwnd(this->m_hWnd);
应该改成:
SetHwnd(this->m_hWnd);