MFC主窗口MainFrm要向另一对话框类CMProperty发送消息。
最开始呢,我用hWnd=mpro.m_hWnd(mpro是对话框类的对象),得到的句柄为0,问了半天,说要先创建,那我就先创建好了。
于是呢, mpro.Create(IDD_MODUALPROPERTY,this);
hWnd=mpro.m_hWnd;
::PostMessage(hWnd,WM_SEND,0,(LPARAM)stradd);
可是这样呢,问题又来了,对话框OnRecv(WPARAM wParam,LPARAM lParam)函数中无法识别控件变量了。上网查了半天,说是新建了个实例,要先SHOW。那我就 :
mpro.Create(IDD_MODUALPROPERTY,this);
mpro.ShowWindow(true);
hWnd=mpro.m_hWnd;
::PostMessage(hWnd,WM_SEND,0,(LPARAM)stradd);
这下控件有反应了,数据可以填充上去了,却填充在一个新的跟原来对话框一模一样的对话框里。就是说这里开始有两个对话框了,查询得到的消息显示在第二个对话框,好崩溃啊。
难道得到对话框句柄一定要CREAT吗?还有就是对话框类里初始化的全局变量在RECV函数里无法识别,难道说它是一个新的线程吗?
怎么办啊,怎么解决呢?
最开始呢,我用hWnd=mpro.m_hWnd(mpro是对话框类的对象),得到的句柄为0,问了半天,说要先创建,那我就先创建好了。
于是呢, mpro.Create(IDD_MODUALPROPERTY,this);
hWnd=mpro.m_hWnd;
::PostMessage(hWnd,WM_SEND,0,(LPARAM)stradd);
可是这样呢,问题又来了,对话框OnRecv(WPARAM wParam,LPARAM lParam)函数中无法识别控件变量了。上网查了半天,说是新建了个实例,要先SHOW。那我就 :
mpro.Create(IDD_MODUALPROPERTY,this);
mpro.ShowWindow(true);
hWnd=mpro.m_hWnd;
::PostMessage(hWnd,WM_SEND,0,(LPARAM)stradd);
这下控件有反应了,数据可以填充上去了,却填充在一个新的跟原来对话框一模一样的对话框里。就是说这里开始有两个对话框了,查询得到的消息显示在第二个对话框,好崩溃啊。
难道得到对话框句柄一定要CREAT吗?还有就是对话框类里初始化的全局变量在RECV函数里无法识别,难道说它是一个新的线程吗?
怎么办啊,怎么解决呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货