如何从模态对话框实时传递数据
来源:互联网 发布:linux gdb调试视频 编辑:程序博客网 时间:2024/06/05 00:20
模态对话框简单好用,用它传递数据时,直接使用DoModal(), 根据按钮情况 进行数据传递:
如下例所示:
[cpp] view plaincopy
CMyDlg dlg;
dlg.i=0; // 初始化数据
dlg.j=0;
if(dlg.DoModal()==IDOK){
int i=dlg.i; //将模态对话框中的变量传递出
int j=dlg,j;
}
但是,这种传递仅能传递模态对话框中最后设定好的数据,而不能传递实时数据,比如,模态对话框中有一个滚动条,主窗口需要实时获得滚动条的值,这时用这种方法便无法获取实时值。
怎么才能将滚动条的实时值传递给主窗口呢?
我采用的方法是自定义消息:每当滚动条发生改变时,往主窗口发送消息,将值传递给主窗口。
1 stdafx.h中自定义消息
[cpp] view plaincopy
#define WM_ANGLE_VALUE (WM_USER+100) //从模态对话框中 传送角度值
2
1) MainFrm.h中声明消息映射函数
[cpp] view plaincopy
afx_msg LRESULT OnAngle(WPARAM wParam,LPARAM lParam);
2) MainFrm.cpp定义消息映射函数,并将消息中的参数传递给相应的窗口
[cpp] view plaincopy
LRESULT CMainFrame::OnAngle(WPARAM wParam,LPARAM lParam)
{
CImportView* pImportView=(CImportView*)m_SplitterWnd.GetPane(0,3);
pImportView->OnAngle((int)wParam,(int)lParam);
return 0;
}
3) MainFrm.cpp中设置消息响应
[cpp] view plaincopy
ON_MESSAGE(WM_ANGLE_VALUE,OnAngle)
3 在模态对话框中发送消息
(theApp.m_pMainWnd)->PostMessage(WM_ANGLE_VALUE,(WPARAM)angle,-1);
由theApp.m_pMainWnd-->PostMessage()可以看出,之所以在MainFrm中定义消息响应函数,是因为在MainFrm中定义消息,可以使得在程序任意地方都可以发送此消息。 因为,程序运行时,theApp 便是这个程序,theAPP.m_pMainWnd,便是此CMainFrame类对象,所以,程序运行时,theApp.m_pMainWnd 在任意个地方都可以获得,故而,在任意个地方都可以发送此消息。
0 0
- 如何从模态对话框实时传递数据
- 如何从模态对话框实时传递数据
- 两个对话框中间如何传递数据
- 如何从对话框中检索数据
- |对话框与对话框数据传递|
- QT 对话框数据传递
- QT 对话框数据传递
- 对话框数据传递
- 对话框的数据传递
- 对话框之间传递数据
- MFC-对话框间的互相调用及数据传递(模态对话框)
- MFC对话框之间传递数据
- cakephp3 如何从控制器传递数据到视图
- 100分!!!如何实现两个不同手机不同APP之间的实时的数据传递
- 模态对话框调用及值传递
- 两个窗体间实时传递数据
- Service实时向Activity传递数据案例
- MySQL数据传递 Hadoop 非实时
- 串口调试助手vc源程序及其详细编写过程
- 安卓开发中TabHost标签
- ExitWindowsEx函数 关闭计算机
- VC 下Microsoft Speech SDK 5.1 开发小结
- DirectShow SDK下载 与配置
- 如何从模态对话框实时传递数据
- 如何使用installshield进行程序打包发布
- Android网络连接判断与处理
- Android中的“再按一次返回键退出程序”实现
- VC之TAB控件使用
- Android游戏框架AndEngine使用入门
- 论文技巧
- VC++之图形设备接口之CDC类之画弧函数及相关结构
- 关于自动关机的程序设计(MFC/VC)