ANumericUpDown
有 2 个句柄/控件:外部旋转框和内部编辑文本框式控件。
我需要获取内部文本框控件的句柄。NumericUpDown.Handle
给出外部句柄。
我在 Google 上找到的最接近的就是这个论坛对话。诀窍是使用UDM_GETBUDDY = WM_USER+106 = 0x0400+106
返回伙伴窗口句柄的消息,在我们的例子中是文本编辑。
最初的输出是这样的:
control.Capture = true;
IntPtr outer = User32.GetCapture();
IntPtr inner = new IntPtr(User32.SendMessage(outer, (0x0400 + 106), 0, 0));
但后来 OP 说这不起作用,所以有人建议使用GetWindow(outer, GW_CHILD)
. 在哪里GW_CHILD = 5
control.Capture = true;
IntPtr outer = User32.GetCapture();
IntPtr inner = User32.GetWindow(outer, 5);
对于这两种方法,我总是以 结尾inner = 0
,这显然不是正确的答案。但是,OP 声明方法 2 似乎有效,所以我可能做错了什么。
顺便说一句,“捕获”机制似乎没用,因为我可以简单地使用:
IntPtr outer = control.Handle;
哪个返回相同。
那么,关于如何获得内部文本框句柄的任何想法?