我正在使用 Windows API 在另一个程序中设置文本框......除了一个编辑,一切都工作得很好,链接到一个创建 sysMonthCal32 表单的按钮......
一些快照会更清楚:
编辑(带有按钮的文本框):
单击按钮后,会出现 SysMonthCal32 表单(也在 spy++ 中):
我的代码如下,首先我尝试在编辑中发送消息(由 spy++ 标识,但它不起作用),然后我通过 sysMonthCal32 尝试它:
//birthdate
string bd = dd + "/"+ mm +"/"+ yyyy;
child = FindWindowEx(parent, child, "Edit", null);
lExStyle = (long)GetWindowLong(child, GetWindowLongParam.GWL_STYLE);
lExStyle &= ~(ES_UPPERCASE);
lExStyle &= ~(ES_READONLY);
SetWindowLong(child, GWL_STYLE, (uint)lExStyle);
DateTime dt = new DateTime(int.Parse(aaaa), int.Parse(mm), int.Parse(jj));
//SendMessage(child, DTM_SETSYSTEMTIME, IntPtr.Zero, dt.ToString()); //<-- doesn't work (child is the textbox)
btn = FindWindowEx(parent, btn, "Button", null); //<-- I find the button
SendMessage(btn, BM_CLICK, IntPtr.Zero, "0, 0"); //<-- I click it to make the sysMonthCal32 form appear.
IntPtr cal = FindWindow(null, "SysMonthCal32"); //<-- i find the form
//SendMessage(cal, DTM_SETSYSTEMTIME, IntPtr.Zero, dt.ToString());
//doesn't work
SendMessage(cal, WM_SETTEXT, IntPtr.Zero, bd); //bd= birthdate, doesn't work
我在互联网上尝试了很多都没有结果......也许有人在这里有解决方案?
以下是 spy++ 的不同快照:
编辑风格:
将味精发送到编辑后,虽然它仍然是空白的,但我在 spy++ 上得到了这个:
SysMonthCal32 表单的样式: