VS简易示波器(三):子属性窗的参数传递

来源:互联网 发布:银泰百货庆春店 mac 编辑:程序博客网 时间:2024/05/16 00:49

有了子属性窗,接下来就是解决子属性窗的参数如何传递到主对话框。若参数较少,可以通过在子属性窗中添加GetXX之类的函数并由主对话框调用实现,但若参数较多时, GetXX之类的函数和调用也会增加,因此,本篇消息传递方法实现:

1) 在stadfx.h中添加代码;

#defineWM_FDM_MESSAGE  (WM_USER+100)       //自定义信息

struct cmddata{                                                     //传递数据打包结构体

UCHAR m_ucCmd;

USHORT m_usData;

};

2) 在子对话框中添加按钮控件并添加其响应函数代码:

cmddatam_cmddata;

m_cmddata.m_ucCmd = 5;

m_cmddata.m_usData = 10;

::SendMessage(this->GetParent()->m_hWnd,WM_FDM_MESSAGE, DWORD(&m_cmddata), DWORD(0));

3) 在主对话框.h中添加消息接收函数:

afx_msgLRESULT OnRecvMessage(WPARAM wParam, LPARAM lParam);

4) 在主对话框.cpp的MESSAGE_MAP中添加消息映射:

ON_MESSAGE(WM_FDM_MESSAGE,&CMyCtrlSysDlg::OnRecvMessage)

5) 添加消息接收函数OnRecvMessage代码:

CString str;

str.Format(L"%d,%d",m_cmddata->m_ucCmd, m_cmddata->m_usData);

MessageBox(str);

6) 测试效果:点击子对话框按钮后,弹出显示对话框: