实现功能,1窗口如果check选中,点击按钮,将edit的内容通过消息发送到窗口2,显示在edit中,如果没有勾选check,清空edit。
1、新建对话框工程,在主对话框初始化函数中产生一个非模态对话框。
(新建对话框资源,添加控件,生成对话框类,将类.h包含到主窗.h文件中。添加以下,产生非模态对话框
add *madd=new add;//add为新建窗口的类
madd->Create(IDD_DIALOG1, this); //新窗口的ID
madd->ShowWindow(SW_SHOW); //显示
2、自定义消息。在接收消息的对话框类中,用向导自定义消息。
自动生成消息映射和消息响应函数。
需要在接收消息类.h文件开头加以下。
#define mymesage WM_USER+1000
“2019.9.24修正,这个应该放在发送和接收的消息都包含的头文件内,比如都包含public.h,否则没有包含的会提示未定义”
3、双击主对话框的按钮,产生消息。
void CMy22Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
bool mb=((CButton *)GetDlgItem(IDC_CHECK1))->GetCheck();//获得check的值
CString str;
GetDlgItemTextA(IDC_EDIT1,str);//获得edit的值
HWND nd;//是HWND
nd=::FindWindow(NULL,"非模态");//用windows函数找到另一个窗口的句柄