MFC:在父窗口中打开了一个子窗口,然后在子窗口中访问非父窗口的其他窗口的控件。怎么实现。 30

我想要通过GetDlgItemText获得那个窗口上一个按钮控件上的文字,但是,因为那个窗口没有通过DoModal显示,所以总是程序崩溃,求解。。。在A窗口中打开B窗口,... 我想要通过GetDlgItemText获得那个窗口上一个按钮控件上的文字,但是,因为那个窗口没有通过DoModal显示,所以总是程序崩溃,求解。。。
在A窗口中打开B窗口,然后在B窗口中访问C窗口的控件,C窗口并没有被打开,这样行的通不?

这样不可以,C窗口没有打开就是没有被初始化,窗口上的控件句柄自然就没有值,这样只能崩溃。
展开
 我来答
Unkn0wName
2012-11-16 · TA获得超过106个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:133万
展开全部
你的意思就是获取子窗口句柄

1.先要获取主窗口的句柄
获取方法参考:

1.通过进程名称寻找进程 获得进程ID->枚举所有窗口->选出进程ID的主窗口句柄

2.通过窗口名称FindWindow出主窗口句柄

2.::GetDlgItem(这个函数可以获取子窗口的句柄)
例程:

HWND 主窗口句柄=::FindWindow(......);

HWND 子窗口句柄=::GetDlgItem(主窗口句柄,1231);//1231是子窗口在主窗口中的ID

//可以利用GetDlgItem(子窗口句柄,111);这样以此类推,一直到你所要的窗口为止

char 文本[MAX_PATH]={0};

::GetWindowText(子窗口句柄,文本,MAX_PATH);

MessageBox(.........);

Q:怎么获得子窗口在主窗口中的ID?
A:可以通过一些辅助软件获得,比如SPY++、精易助手 ,等等。

传递类的指针即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
椰岛小生活
2012-11-25 · 超过12用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:34.9万
展开全部
要访问别的窗口需要获取到窗口的对象.
如果是父窗口创建的窗口,那么可以在父窗口创建这个子窗口的时候,在构造方法中传入这个要操作的窗口对象,然后通过这个窗口对象对这个窗口进行操作
C窗口没打开你去哪访问他的控件...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xz宏定义
2012-11-15 · TA获得超过1029个赞
知道小有建树答主
回答量:1621
采纳率:100%
帮助的人:228万
展开全部
父窗口类:CMainDlg;
子窗口:CReadInfo;
父窗口上有控件IDC_IP;

HWND pwnd=GetParent();//企图获得父窗口句柄
HWND pwnnd= ::GetDlgItem(pwnd, IDC_IP);//企图通过父窗口句柄获取IDC_IP控件句柄
::GetWindowText(pwnnd,IpAddr,16);//企图把控件里的IP地址赋值给IpAddr
MessageBox(IpAddr);//企图以弹出的形式弹出我获取到的IP地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式