源代码:http://download.csdn.net/detail/nuptboyzhb/4143519
1. 非模态对话框的创建
a. 新建一个对话框的资源,假设ID号为IDD_DIALOG1;然后创建其对应的类,类名为CMyDlg;然后完善各个控件之间的编程;
b. 在视图中,增加一个成员函数 CMyDlg m_dlg;
c. 在视图类的OnCreat函数中,创建对话框,并将其与相应的对话框资源的ID相关联
m_dlg.Create(IDD_DIALOG1,this);//第一个参数是ID资源号,第二个是父窗口的指针
m_dlg.ShowWindow(SW_HIDE);//隐藏其显示
d. 在需要触发显示的地方,让其显示
m_dlg.ShowWindow(SW_SHOW);
2. 非模态对话框与视图类的数据交换
(1) 自定义消息
这个是常用的方法,它的大体思路是:在视图中定义一个用户消息;在对话框中需要响应视图里的消息时,用SendMessage函数触发;
(2) 我们可以用一个按钮,完成它们之间的消息传递;
a. 在视图类中增加一个CButton btn对象;
b. 在视图类的OnCreate函数中,创建该对象
btn.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
CRect(20,0,100,20), &m_dlg, IDC_MYBTN);
注意:第四个参数,是指父窗口的指针;第五个参数是按钮的ID号;这个ID
号是我们自己定义的;ID号非常重要,我们可以根据ID号,进行消息
映射,以达到点击按钮,响应相应函数的目的;
c. 根据按钮的ID号,我们进行按钮的消息映射响应;
1. 声明消息处理函数 afx_msg void OnMybtn();
2. 映射 ON_COMMAND(IDC_MYBTN,OnMybtn)
3. 实现
void CXXXView::OnMybtn()
{
// TODO: Add your command handler code here
MessageBox("响应成功");
}
因此,通过点击按钮,在按钮的消息响应函数中,就能编写数据交换的代码了!
分享到:
相关推荐
点击运行弹出一个对话框,点击DIALOG1按钮弹出一个模态对话框,在该对话框的编辑框输入文本点击确定该对话框消失且输入的文本被显示到主对话框MainDialog中,点击DAILOG2按钮弹出一个非模态对话框,操作现象和模态...
MFC创建模态对话框和非模态对话框实例小程序,学习如何在程序开发中使用模态对话框和非模态对话框
基于vs2005,在ObjectARX中使用MFC:模态,非模态对话框
非模态对话框的创建与视图类的数据交换
弹出子对话框,在子对话框特定位置,显示非模态对话框,对话框之间的数据传递
MFC模态与非模态对话框的创建有截图详细步骤
VS2010/MFC模态对话框和非模态对话框的创建和使用
本人搜寻的一些资料,学习了MFC非模态下的主从对话框数据传输,把自己心的做法写出来供大家指点,资料+代码
MFC中经常会用到弹出模态或非模态对话框,模态对话框与非模态对话框容易混淆
MFC 加法计算器 + 非模态对话框 完整工程演示代码下载 MFC 加法计算器 + 非模态对话框 完整工程演示代码下载 MFC 加法计算器 + 非模态对话框 完整工程演示代码下载 MFC 加法计算器 + 非模态对话框 完整工程演示...
主对话框单击事件里使用多线程创建对话框B,正常情况见B对话框都是闪现一次,无法长期停留。本代码利用MSG防止了此现象的发生,适合初学多线程的新手。
C++源码 VC6工程 非模态对话框创建和销毁 1,防止创建多个非模态对话框 2,实现模态对话框的销毁
通过VC实现非模态对话框与应用程序之间的数据交换,供初学者参考。
非模态对话框与模态对话框不同,在非模态对话框活动的同时,用户还可以在应用程序的其他地方工作,而模态对话框在其关闭之前,用户不能在同一个应用程序的其他地方工作。本例将从主框架窗口创建一个简单的非模态...
MFC 加法计算器 + 向导对话框+非模态对话框 完整工程演示代码下载 MFC 加法计算器 + 向导对话框+非模态对话框 完整工程演示代码下载 MFC 加法计算器 + 向导对话框+非模态对话框 完整工程演示代码下载 MFC 加法...
MFC 加法计算器+属性页对话框+非模态对话框 完整代码下载 MFC 加法计算器+属性页对话框+非模态对话框 完整代码下载 MFC 加法计算器+属性页对话框+非模态对话框 完整代码下载 MFC 加法计算器+属性页对话框+非模态...
非模态对话框相对于模态对话框,他的创建和销毁...还有一个必须重载的函数就是PostNcDestroy,这也是一个虚函数,通常的非模态对话框是用类的指针,通过new创建的,这就需要在PostNcDestroy函数中delete掉这个指针。
非模态的对话框是独立的,就是说和主程序可以同时交换数据,而模态的对话框则只能和自己交换。换句话说,模态对话框很霸道,你开了它就无法在同一个应用程序中的其他地方干活了,比如那个经常用的openfile dialog。...
非模态对话框与模态对话框不同,在非模态对话框活动的同时,用户还可以在应用程序的其他地方工作,而模态对话框在其关闭之前,用户不能在同一个应用程序的其他地方工作。本代码将从主框架窗口创建一个简单的非模态...
VC中模态对话框和非模态对话框的编程