MFC如何获得一个无模式对话框的指针

问题描述

MFC如何获得一个无模式对话框的指针

我在创建一个无模式对话框的时候,想实现不关闭对话框也能向视图中发送数据的功能。
我是在对话框里弄了一个按钮,然后在这个按钮的响应函数中发送一个自定义消息,这个自定义消息响应函数是在**CxxxView**类里定义的,要想把数据发送过来,需要对话框的指针,请问如何获得这个对话框的指针?
我查过一些资料,试过**GetParent()**,但是用这个的时候,我的程序画出来的图像完全不对。。
代码如下:**CNPenDlg NPenDlg=(CNPenDlg)GetParent();**,**CNPenDlg**是对话框的类。
也试过用**FindWindow**和**FromHandle**,但是程序一运行就崩溃。。
代码如下:**HWND hwnd=::FindWindow(L"CNPenDlg",L"选择画笔");**
CNPenDlg NPenDlg=(CNPenDlg)FromHandle(hwnd);

时间: 2024-07-31 12:43:09

MFC如何获得一个无模式对话框的指针的相关文章

无模式对话框的创建与使用

在编程过程中,对话框经常用到,但对无模式和模式对话框的创建和销毁过程,经常有误解,下面提供一个无模式对话框的例子来剖析无模式对话框的形成: 无模式对话框与有模式对话框不同的是在创建后其他窗口都可以继续接收用户输入,因此无模式对话框有些类似一个弹出窗口.创建无模式对话框需要调用BOOL CDialog::Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );之后还需要调用BOOL CDialog::ShowWindow( SW_SHOW);进行显示

c++问题-vc++无模式对话框显示问题

问题描述 vc++无模式对话框显示问题 对话框架构下,在CWinApp派生类的InitInstance函数中,启动对话框之前,构造了另一个只含有进度条和文本框的对话框,用来显示加载数据的进度.此对话框为无模式对话框,初始显示正常,但一旦最小化,再还原后,进度条和文本框均无法显示,背景也变为白色.对话框架构下,再使用一个无模式对话框确实比较另类,所以遍查不到解决方法,恳请哪位高手帮忙! 解决方案 http://blog.163.com/guo_ahui/blog/static/4465088320

IE中ocx控件的无模式对话框不接收方向键等键盘消息的问题的解决办法

在ocx控件中如果含有无模式对话框,那么当ocx在ie中显示时,往往接收不到 诸如tab,方向键和退格键.所有这些消息都被IE容器给截取了,对于这个问题,ms给出了解决方法: 首先:   int CMyActiveXCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)   {      if (COleControl::OnCreate(lpCreateStruct) == -1)         return -1;      OnActivateInPl

MFC应用程序中处理消息的顺序,创建窗口的过程关闭窗口的顺序(非模态窗口),打开模式对话框的函数调用顺序

MFC应用程序中处理消息的顺序 1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,                    然后调用WindowProc()函数 3.WindowProc()      该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数 4.O

关于OnOK()、OnCancel()、OnClose()、OnDestroy() 模式对话框 非模式对话框

总结OnOK().OnCancel().OnClose().OnDestroy()之间的区别(转) 2009年09月22日 下午 08:33 第一,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDestroy()是CWnd基类的成员函数,即WM消息响应函数.从应用程序结构的角度,拿对话框来说,红色的X对应的是CWnd,而处于对话框中的"确定"."取消"按钮则对应了CDialog. 第二,OnClose()和OnDestr

qt-Qt相关问题,非模式对话框的销毁

问题描述 Qt相关问题,非模式对话框的销毁 Qt中我在主窗体(show函数)调用一个非模式对话框,在非模式对话框使用完后,我想返回那个主窗体,我要怎么销毁当前这个非模式对话框? 解决方案 如果想用主窗口去銷毀的話可以讓對話框發個信號給主窗口 然後在主窗口的槽函數里銷毀. 解决方案二: 非模式对话框上没有什么按钮么,比如说关闭按钮

mfc 属性表 属性页-MFC 有关于属性页向导模式对话框点击下一步,对话框自动隐藏的问题

问题描述 MFC 有关于属性页向导模式对话框点击下一步,对话框自动隐藏的问题 我在MFC中用属性页和属性表建立向导模式对话框时,点击第一个下一步时,对话框可能会会隐藏,就是有时候会有时候不会, 属性表代码 CPropertySheetDlg::CPropertySheetDlg(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage) :CPropertySheet(nIDCaption, pParentWnd, iSelectPage) { Ad

IE的模式对话框设计

对话框|设计 在开发 Intranet Web Mis 的过程中,大家发现如果运用模式对话框,程序的流程将更为清楚.在某些情况,用户必须进行某些操作之后,才能继续后面的事情.比如:某些安全性要求比较高的操作,需要操作者输入口令以确认.如果实现了模式对话框,那么一个WEB程序看上去更象一个VB 或 DELPHI 开发的应用程序.结合运用 ASP 和 DHTML ,可以实现模式对话框. 本文以 msgbox 的实现为例.客户端 VBScript 有一个函数 Msgbox() (以及衍生出来的Aler

MFC程序员WTL指南(5)对话框与控件

对第四章的介绍 MFC 的对话框和控件的封装真得可以节省你很多时间和功夫.没有MFC对控件的封装,你要操作控件就得耐着性子填写各种结构并写很多的SendMessage调用.MFC还提供了对话框数据交换(DDX),它可以在控件和变量之间传输数据.WTL 当然也提供了这些功能,并对控件的封装做了很多改进.本文将着眼于一个基于对话框的程序演示你以前用MFC实现的功能,除此之外还有WTL消息处理的增强功能.第五章将介绍高级界面特性和WTL对新控件的封装. 回顾一下ATL的对话框 现在回顾一下第一章 提到