LRESULT PostMessage(HWND hWnd,UINT wMsg,WPARAM wParam,LPARAM IParam);//hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。//wMsg:用于区别其他消息的常量值,这些...
5、最好不要使用PostThreadMessage post message给一个窗口,使用PostMessage替代。 1 #include <windows.h>2#include <cstdio>3#include <process.h>4#defineMY_MSG WM_USER+1005constintMAX_INFO_SIZE =20;6HANDLE hStartEvent;//thread start event7//thread function8unsigned __stdcall fun(void*param)9{...
BOOL PostMessage(UINT message,WPARAM wParam = 0,LPARAM lParam = 0 )有时候你的消息需要带参数,比如一个字符串什么的,这个时候就可以使用后面两个参数,把你的参数的地址赋值给wParam 或 lParam ,然后在你的消息函数中就可以通过这个地址获取的值。但如果你传递的是new出来的数据,记得在你的消息...
// 通过第一个参数或者第二个参数传递都OK ::SendMessage(pMainFrame->pDlg4->m_hWnd, UM_MESSAGE_EDIT_ADD_STRING, 0, (LPARAM)s0); // OK // ::SendMessage(pMainFrame->pDlg4->m_hWnd ,UM_MESSAGE_EDIT_ADD_STRING,(WPARAM)&s0,0); // OK // 运用PostMessage 还未测试,据说不同,只能用全局...
比如,要传递字符串,则在子窗体中写:CString str= "自定义字符串";::PostMessage((HWND)(GetMainWnd()->GetSafeHwnd()),WM_MYMSG,NULL,(LPARAM)&str);在主窗体中响应:BEGIN_MESSAGE_MAP()ON_MESSAGE(WM_MYMSG, onMyMsg)END_MESSAGE_MAP()然后再onMyMsg响应就可以了。
我知道的有两种做法:1在主界面线程中,添加一个与这些数据有关的变量,在你的子对话框线程中修改这些变量的值。2、通过消息传递,就是自定义一些消息,然后通过postmessage函数把要传递的值通过参数传递过去。具体postmessage怎么用,去百度一下这个函数的用法就好了。第一种方法简单点,限制的比较死,...
有以下几种方法可用:1> 将变量保存到CWinApp派生类中,通过全局的theApp访问;2> 通过自定义消息发送给目标窗口;3> 直接为第2个窗口添加一个设置参数的方法,然后在显示这个窗口之前调用该方法把参数传进去;
子窗口向父窗口传递消息。 重要函数 PostMessage 功能 把消息投放到线程的消息队列 函数原型 BOOLPostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam); 函数参数 hWnd 接收消息的窗口句柄 Msg 消息 ID wParam 通常用来存储小段信息,如标志 lParam 通常用于存储消息所需的对象 ...
–字参数:wParam参数–长整型参数:lParam参数 消息被发送到其对应的窗口,对于MFC来说,只有主框架CMainFrame和视图类CView及其派生类才能接收消息 用户可以发送和接收消息,Windows提供两个发送消息的函数:–PostMessage(),不理会消息是否已被处理–SendMessage(),等待消息处理完毕才返回 3.1.2MFC的消息处理机制 ...