MFC两个对话框SendMessage通信
用MFC做Demo时需要两个对话框进行通信,两个对话框的关系如下:
1.CDialog<-- CDHtmlDialog<--CHtmlCtrl
2.CDialog<-CTwitter_demo_mfcDlg
CHtmlCtrl和CTwitter_demo_mfcDlg同样继承与CDialog。在CTwitter_demo_mfcDlg中会创建和显示CHtmlCtrl窗口。
那么CHtmlCtrl和CTwitter_demo_mfcDlg如何通信呢?
方法1:设置父子关系
1.在创建CTwitter_demo_mfcDlg时设置父窗口,设置如下:
Create(IDD_DIALOG_WEB,this);
2.在 CHtmlCtrl中就可以获得CTwitter_demo_mfcDlg窗口句柄this->GetParent()->m_hWnd;
3.通过::SendMessage(m_dig_hwnd,WM_WEB_CLOSE,0,0);
具体通信见《MFC--自定义消息的发送与接收的方法实现》
方法2:直接通过SendMessage通信
1.直接保存CTwitter_demo_mfcDlg的句柄到CHtmlCtrl中
2.通过::SendMessage(hwnd,WM_WEB_CLOSE,0,0);
3.CTwitter_demo_mfcDlg中截获WM_WEB_CLOSE消息。
分享到:
相关推荐
例如,我们可以创建IDD_DIALOG1和IDD_DIALOG2两个对话框资源。 2. **创建对话框类**:对于每个对话框资源,我们需要创建一个CDialog派生类。在头文件中,声明这些类并继承自CDialog,然后在实现文件中完成类的定义...
在MFC(Microsoft Foundation Class)库中,编程时经常需要在不同的对话框之间传递数据或参数,以便实现对话框间的交互。本篇文章将详细介绍两种在MFC...希望这两个实例能对MFC初学者在对话框间参数传递方面有所帮助。
通过以上步骤,你就能在MFC的两个对话框之间有效地传递自定义消息了。这不仅增强了应用程序的交互性,还能使代码结构更加清晰,便于维护和扩展。在实际应用中,可以根据需求调整参数,实现更复杂的功能,比如传递...
"两个对话框之间发送消息"的主题涉及到如何在MFC的对话框类之间进行通信,特别是在一个对话框的操作需要影响另一个对话框的状态时。这通常通过消息机制实现,其中消息响应函数扮演着关键角色。 首先,让我们理解...
这个对话框可以通过CDialog派生,并设置相应的控件,如编辑框和按钮。成功验证后,可以创建并显示主窗口。 7. **新建窗口**:在窗口中新建窗口可能涉及到MDI或SDI(单文档界面)的概念。MDI允许在一个框架窗口内...
在这个例子中,它帮助我们将数据从一个对话框传递到另一个对话框,更新了多个`Edit`控件的内容,实现了用户界面之间的交互。理解并熟练运用`SendMessage`函数对于进行复杂的MFC应用程序开发至关重要。
因此,实现两个对话框之间的消息传递,我们需要自定义消息并添加相应的消息处理函数。 1. **自定义消息**:在MFC中,可以通过`RegisterWindowMessage`函数为应用程序注册一个唯一的、未被其他部分使用的消息ID。...
这个实例展示了如何在两个对话框之间使用自定义消息进行通信,这对于在复杂的用户界面设计中实现灵活的控制流和数据交换非常有用。在实际开发中,自定义消息可以用于实现更复杂的功能,如组件间的协作、状态同步等。...
3. 通过成员变量或全局变量:创建公共的成员变量或全局变量,作为两个对话框间数据共享的桥梁。 4. 使用消息发送(SendMessage):直接使用Windows API函数SendMessage或PostMessage在对话框之间发送自定义消息,...
关于提供的两个压缩文件,"MFCWithOpenGL.rar"和"MFCDlg.rar"可能包含示例代码,用于演示如何在MFC应用程序中使用OpenGL进行图形渲染或者展示对话框。如果没有OpenGL的需求,可以去掉相关的代码部分,专注于MFC的...
- **CSemaphore**和CMutex:这两个类分别用于限制同时访问资源的线程数量和保证资源的互斥访问。 5. **线程通信** - **线程间通信**:MFC提供了消息队列和消息映射机制,线程之间可以通过发送和接收消息进行通信...
本实例将深入探讨如何在两个对话框之间传递消息,以及在VS2005下如何实现这一过程。 首先,我们需要了解对话框的消息机制。在Windows系统中,每个窗口(包括对话框)都有一个消息队列,用来接收和处理来自操作系统...
2. 管道通信:管道是一种共享文件模式,它基于文件系统连接两个通信进程之间,以先进先出的方式实现消息的单向传送。管道是一个特殊文件,在内核中通过文件描述符表示。管道是一个单向通信信道,要进行双向通信通常...
在描述中提到的“test2”和“test”可能是两个独立运行的程序,其中“test2”是先运行的程序,它创建了一个对话框,并且这个对话框的句柄对“test”程序是可见的。句柄是Windows API中用于标识特定对象的唯一标识符...
这个新进程将运行第三方程序,并返回一个进程句柄和主线程句柄,这两个句柄对于后续的通信和控制至关重要。 2. 获取子窗口句柄:启动后的第三方程序会产生一个或多个窗口。我们需要找到这些窗口并获取其句柄。这...
这两个函数可以直接在窗口之间发送消息,它们的区别在于:PostMessage是非阻塞的,而SendMessage会等待接收方处理完消息才会返回。 7. **数据交换和验证(DataExchange and Validation)**: 在对话框中,可以...
本资源"商业编程-源码-对话框源代码 ChildDialogInADialog_src.zip"提供了一套关于如何在对话框中嵌套另一个对话框的源代码,这对于开发复杂的用户交互应用非常有帮助。 首先,我们来看“对话框”这一概念。在...
2. **对话框(Dialog)**:为了获取用户输入的源文件和目标文件路径,你需要创建一个对话框,其中包含两个OpenFileDialog控件,分别用于选择源文件和目标文件。对话框通常由CDialog派生的类来管理,并且可以使用资源...
在此期间,线程可以通过PostMessage或SendMessage与主线程通信,或者使用afxGetApp()->AddToMessageLoop()将消息添加到消息循环。 5. **线程结束**:当线程完成任务后,应该调用CWinThread的ExitInstance()函数,...
《新编WINAPI大全及MFC的函数说明》是一份深度解析Windows API和MFC库的资源,旨在帮助开发者深入理解这两个关键领域的功能与用法。这份资料以HTML格式呈现,详细而全面,但需要读者有足够的时间和耐心去研读。 ...