C++ 我可以使用什么功能来获取按钮的手柄?

C++ 我可以使用什么功能来获取按钮的手柄?,c++,windows,C++,Windows,情况如下: 我有一个窗口的句柄(我通过函数FindWindowEx()获得),该窗口有3个按钮。我想知道如何才能得到3个按钮中的一个按钮的手柄。我的意思是我知道ppl可以使用spy++,但我确信一定有一些函数可以为我做到这一点,所以我的问题是: 问题: 我可以使用什么函数来获取窗口按钮的句柄(已经知道窗口的句柄) 问题2: 如何获取按钮ID???您可以使用循环遍历该窗口的子窗口 它允许您为窗口的每个子级定义要调用的回调函数 在回调中,您可以检查当前子项是否是所需的按钮 例如,如果您想按OK按钮,

情况如下:

我有一个窗口的句柄(我通过函数FindWindowEx()获得),该窗口有3个按钮。我想知道如何才能得到3个按钮中的一个按钮的手柄。我的意思是我知道ppl可以使用spy++,但我确信一定有一些函数可以为我做到这一点,所以我的问题是:

问题: 我可以使用什么函数来获取窗口按钮的句柄(已经知道窗口的句柄)

问题2:
如何获取按钮ID???

您可以使用循环遍历该窗口的子窗口

它允许您为窗口的每个子级定义要调用的回调函数

在回调中,您可以检查当前子项是否是所需的按钮

例如,如果您想按OK按钮,可以检查窗口文本是否等于
OK
。您可以使用获取窗口文本

如果您知道父窗口中的位置,则可以使用。
要使其工作,您可能必须首先检查windows状态(maximazed或current width height),以确保按钮位于您想要的位置


一个简单的方法可能是获取他相对于窗口另一个子窗口的位置,这更容易检索。例如,如果按钮始终位于文本框控件的右侧,则可以获取文本框的坐标,并使用
ChildWindowFromPoint
通过在
x
方向添加的内容传递这些坐标。

使用GetDlgItem()。你必须知道ID,使用Spy++查看它。汉斯,问题是我试图在Spy++上获取它,但找不到如何。。。。我的意思是,我有visual studio 2010,并使用spy++查找窗口。。。但是按钮的选项在哪里??我花了两天的时间在这个项目上,但还是没什么,兄弟,退后一步。你想用这个按钮做什么?也许UI自动化将是一个更好的方法。我正在尝试单击另一个程序上的按钮。我决定使用EnumChildWindows()查看所有子窗口,直到我点击一个特定的子窗口,其中有我要单击的按钮。。。然而。。。问题是如何识别按钮?我的意思是,按钮需要一些特性,使其可识别,我曾试图使用spy++找到一些东西,但我有点新手。。。我不知道什么是UI自动化。。。也许是个不错的选择,但我真的不想进入一个新的库并放弃我迄今为止所做的一切,但如果你能向我解释UI自动化是如何工作的,我会很感激的是,这就是我正在尝试做的,然而我将要查看的按钮实际上是图标。。。有3个图标,其中没有标题。。。所以我猜我需要看看我想按下的一个按钮有什么特殊特性。。。但那会是什么特征呢?我发现自己处于这样的境地。我尝试与之交互的程序没有使用常规按钮:它们有定制的图形和功能。我能做的唯一一件事就是通过他们在家长中的位置来获得按钮。见更新的答案。是的。我最近还注意到,我现在看到的按钮位于工具栏中,这一事实实际上使它们看起来像“工具栏按钮”,而像BN_CLICK这样的消息不起作用。相反,您使用带有TB_u前缀的MSG。慢慢地但肯定地,我正在向前迈进:P