为什么文本框控件无法输入(Windows API编程)
WindwosAPI编程,用如下方法创建一个文本框控件,如果控件在程序的主窗口下一切正常,如果控件在子窗口中,则鼠标点不上去,无法使用,这是为什么?要怎么解决?Creat...
Windwos API编程,用如下方法创建一个文本框控件,如果控件在程序的主窗口下一切正常,如果控件在子窗口中,则鼠标点不上去,无法使用,这是为什么?要怎么解决?
CreateWindowEx(0, //创建窗口
"EDIT", //文本框
"用户列表", //标题
WS_CHILD| //子窗口
WS_BORDER| //窗口具有单边框
WS_VISIBLE, //初始状态可见
50,50, //文本框显示位置
90,30, //长度和高度
hwnd, //父窗口句柄
(HMENU)(2001), //文本框ID
HIns_UE, //与文本框相关的实例句柄
NULL); //附加属性
终于找到原因了,自己补充一下,以方便后来者。经过我的反复试验,假如程序主窗口为A,下面有子窗口B,B里面有文本框若干。那么如果子窗口B同时用了WS_CHILD(子窗口)和WS_BORDER(具有单边框)这两个风格,那么B下面的文本框键盘鼠标都无法选中,即使你在程序中用函数强制指定其中一个文本框获得焦点,那也只有那个文本框可以用,无法通过鼠标和键盘切换到其他文本框上。这应该算是Windows API的一个小BUG。解决的唯一办法就是把B窗口中的WS_CHILD(子窗口)和WS_BORDER(具有单边框)两个属性根据情况去掉一个。 展开
CreateWindowEx(0, //创建窗口
"EDIT", //文本框
"用户列表", //标题
WS_CHILD| //子窗口
WS_BORDER| //窗口具有单边框
WS_VISIBLE, //初始状态可见
50,50, //文本框显示位置
90,30, //长度和高度
hwnd, //父窗口句柄
(HMENU)(2001), //文本框ID
HIns_UE, //与文本框相关的实例句柄
NULL); //附加属性
终于找到原因了,自己补充一下,以方便后来者。经过我的反复试验,假如程序主窗口为A,下面有子窗口B,B里面有文本框若干。那么如果子窗口B同时用了WS_CHILD(子窗口)和WS_BORDER(具有单边框)这两个风格,那么B下面的文本框键盘鼠标都无法选中,即使你在程序中用函数强制指定其中一个文本框获得焦点,那也只有那个文本框可以用,无法通过鼠标和键盘切换到其他文本框上。这应该算是Windows API的一个小BUG。解决的唯一办法就是把B窗口中的WS_CHILD(子窗口)和WS_BORDER(具有单边框)两个属性根据情况去掉一个。 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询