MFC 子窗口怎么得到父窗口的父窗口的指针,并对父窗口的父窗口的按钮进行操作??
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC 子窗口怎么得到父窗口的父窗口的指针,并对父窗口的父窗口的按钮进行操作??相关的知识,希望对你有一定的参考价值。
参考技术A 子窗口获得父窗口指针 GetParent();比如父窗体如下
CParentDlg : public CDialog
public:
CButton m_bt;
子窗体操作父窗体的按钮m_bt,可以这样(CParentDlg *)GetParent()->m_bt.SetWindowText("hello");追问
提示error C2039: 'm_bt' : is not a member of 'CWnd' 这种错误。。怎么办呢?
我的目的就是希望通过点击子窗口的按钮,使能父窗口的按钮(父窗口的按钮在父类初始化函数里被我设置为禁用了:GetDlgItem(IDC_CAOZUO)->EnableWindow(FALSE);)
((CParentDlg *)GetParent())->->m_bt.SetWindowText("hello");
参考技术B 用AfxGetMainWnd可以获得主窗口的句柄追问我在子类 函数里这么写
CMyDlg *pMMD = (CMyDlg*)AfxGetMainWnd();
GetDlgItem(IDC_CAOZUO,pMMD)->EnableWindow(TRUE);
可是报错error C2664: 'void __thiscall CWnd::GetDlgItem(int,struct HWND__ ** ) const' : cannot convert parameter 2 from 'class CMyDlg *' to 'struct HWND__ ** '
错误指向第二句的
CDialog *pMMD = (CDialog*)AfxGetMainWnd();
本回答被提问者采纳获取子窗口的父窗口的兄弟窗口方法
$($("body").find(‘#jbox-iframe‘)[0]).contents().find("#keywords").val(name + "(" + code + ")");
$($("body").find(‘#jbox-iframe‘)[0]).contents().find("#keywords").attr("data-code",code);
$($("body").find(‘#jbox-iframe‘)[0]).contents().find("#pcode").text(name);
$($("body").find(‘#jbox-iframe‘)[0]).contents().find("#cguser").text(cguser);
$($("body").find(‘#jbox-iframe‘)[0]).contents().find("#ptel").text(tel);
$($("body").find(‘#jbox-iframe‘)[0]).contents().find("#choicechantid").text(merchantid);
$($("body").find(‘#jbox-iframe‘)[0]).contents().find(".choiceCnt").show();//显示发送信息
jbox-iframe为兄弟窗口,最有效的办法就是把当前窗口所要选择的值先付给父窗口,然后兄弟窗口再去父窗口获取所需要的值,这种功能在同时打开多个兄弟窗口时经常被使用到。
以上是关于MFC 子窗口怎么得到父窗口的父窗口的指针,并对父窗口的父窗口的按钮进行操作??的主要内容,如果未能解决你的问题,请参考以下文章