0

我正在使用 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 表单的样式:

在此处输入图像描述

4

0 回答 0