如何让父窗口来处理子窗口的消息

mo01 2002-07-20 07:45:48
例如我有一个父窗口wnd1,wnd1里有一个子窗口wnd2,wnd2里有一个按钮button1, 当单击button1时,如何让这个父窗口的数据得到改变,(不要用GetParent()->这一类的方法,因为这个子窗口类要作为好几个窗口的子窗口)
...全文
190 25 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
mo01 2002-07-25
  • 打赏
  • 举报
回复
怎么给不了分啊?
mo01 2002-07-25
  • 打赏
  • 举报
回复
问题已经解决了,可以先用this->GetParent()->IsKindof(RUNTIME_CLASS())
判断父窗体的类型,再用各位的方法就可以了.好了,给分
siphonelee 2002-07-21
  • 打赏
  • 举报
回复
up
shudingbo 2002-07-21
  • 打赏
  • 举报
回复
我用sendMessage()实现的!
=========================
>webber84(糕鱼昏)
>你要做为哪个窗口的子窗口,就在wnd2的构造函数里传入哪个窗口的句柄就
>行了嘛。

它的做法到底是怎样的?


mo01 2002-07-21
  • 打赏
  • 举报
回复
各位大侠,是这样的,我要做一个用于输入数字的小键盘,我把这个小键盘作为一个子窗口,因为这个小键盘在很多个窗口中都要被调用,当我在小键盘中按下“1”时,应该让父窗口得到这个消息,大家指教一下,在这种情况下,用什麽办法最好
zhangdaqiang 2002-07-21
  • 打赏
  • 举报
回复
使用下面语句来获得父窗口的指针,
CWnd *pMainDlg=this->GetParent();
webber84 2002-07-21
  • 打赏
  • 举报
回复
就是在构造函数里增加一个参数嘛。
class CMyDialog:public CDialog
{
………
CMyDialog(CWnd* pWnd) { pParent=pWnd;}
private:
CWnd* pParent;
}
需要创建这个窗口时:
CMyDialog* pDailgo=new CMyDialog(this); //this为父窗口指针
pDialog->Create
pDialog->ShowWindow
上面的代码只是表示一下我说的意思,真正实现时要注意用正确的参数调用基类的构造函数。
mo01 2002-07-21
  • 打赏
  • 举报
回复
没有人知道吗?
mail_dcb2 2002-07-21
  • 打赏
  • 举报
回复
单击按钮--->postmessage---〉处理之
netsbull 2002-07-21
  • 打赏
  • 举报
回复
,(不要用GetParent()->这一类的方法,因为这个子窗口类要作为好几个窗口的子窗口) ???

应该可以这样的。
你要强制转换GetParent()所得的指针到真正的类型。
CWnd1 * pWnd = (CWnd1 *)GetParent();
shudingbo 2002-07-20
  • 打赏
  • 举报
回复
up,up
shudingbo 2002-07-20
  • 打赏
  • 举报
回复

我使用下面语句来获得父窗口的指针,
CWnd *pMainDlg=this->GetParent();

但是使用pMianDlg->时却不能见到在父窗口中定义的变量!?
why??????
shudingbo 2002-07-20
  • 打赏
  • 举报
回复
还是不懂:
我用下面语句建立一个非模式对话框
dlglist->Create(IDD_DLG_LIST,this);
那么如何此子对话框中获得父窗口的指针?
jmcooler 2002-07-20
  • 打赏
  • 举报
回复
这个子窗口类要作为好几个窗口的子窗口,保存父窗口的指针或者句柄不是好办法,因为可能要层层传递这个指针到子窗口。如果保存到全局变量还好些。
如果你的父窗口就是程序的主窗口,你可以调用AfxGetMainWnd()取得主窗口的指针,当然需要强制转换一下,然后再调用主窗口类的一个成员函数就可以了。
shudingbo 2002-07-20
  • 打赏
  • 举报
回复
up
shudingbo 2002-07-20
  • 打赏
  • 举报
回复
>archoo(archoo)
明确点行吗?
archoo 2002-07-20
  • 打赏
  • 举报
回复
同意 webber84(糕鱼昏)
这是最简单,又最通常的做法!

shudingbo 2002-07-20
  • 打赏
  • 举报
回复
>andy_lau(阿虎)
如果,窗口无标题呢?
Ton2000 2002-07-20
  • 打赏
  • 举报
回复
SendMessage()
||
PostMessage()
andy_lau 2002-07-20
  • 打赏
  • 举报
回复
FindWindow()
加载更多回复(5)

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧