gpt4 book ai didi

c++ - 如果我有一个引用该控件的 CWnd 对象,是否有一种方法可以获取对 MFC 对话框上所有子窗口或控件的引用?

转载 作者:可可西里 更新时间:2023-11-01 10:21:34 27 4
gpt4 key购买 nike

假设我有一个带有多个按钮的 MFC 对话框。 (例如“红色”、“蓝色”、“绿色”和“黄色”按钮)这些按钮都有诸如 ("IDC_BUTT_RED","IDC_BUTT_BLUE","IDC_BUTT_GREEN","IDC_BUTT_YELLOW")

鉴于我有一个 CWnd 对象,它引用放置这些按钮的对话框窗口。有没有办法获取这些 ID 的列表?

我知道有一个 CWnd::GetNextDlgGroupItem 方法,根据描述应该循环访问一组控件。我尝试使用它,传入一个引用其中一个按钮的 CWnd 对象,然后调用 GetWindowText 方法进行检查,但它总是返回对自身的引用。

最佳答案

您可以使用 EnumChildWindows 枚举对话框的所有子窗口。这是一个 C API 函数,因此您可以使用和获取 HWND 而不是 CWnd。当每个子窗口的 HWND 传递给您的回调函数时,您可以调用 GetClassName 来查找其窗口类名称(如“BUTTON”)并调用 GetWindowLong 来查找其 ID。

关于c++ - 如果我有一个引用该控件的 CWnd 对象,是否有一种方法可以获取对 MFC 对话框上所有子窗口或控件的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27788886/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com