有个顶级窗口A,他有两个子窗口b和c,当前状态是c(是个列表(listview类)的窗口)获得输入焦点,当发消息wm_setfocus给b后,b中的光标在闪烁,但是不能输入东西,除非按下tab键切换一下输入焦点。wm_setfocus为什么不能真正切换输入焦点呢?
解决方案 »
- 控件如何卸载的问题,实在是没有办法解决,大家多多帮忙啊,十分感谢!!!!!!!!!!!!!!!!!!!
- 我怎么将预先定义好的WORD中的$1替换为"我爱你滚滚长江水",谢谢:)
- 三个关于文件读取和打印的基本小问题,给意见就给分!
- ######### 讨论一下,xmlhttp有什么用,在什么情况下有用 #############
- 关于储存反值的问题
- 1个关于DATAGRID控件和SQL2000连接的简单问题高分求解~~~~~
- 刚刚毕业就走上了讲台,教VB大家能否给些意见!
- form上的控件名可否动态引用?如10个文本框,txt1..10,能否用for循环引用?
- 关于用APi进行文件读写的问题!!!
- 有谁知道诺基亚手机游戏“贪食蛇”的原码?
- 用VB如何建立超长窗体?
- 辞职了,不过悲剧的要交接一个月。
在设置焦点前,或许要formb.show 一下.
The WM_SETFOCUS message is sent to a window after it has gained the keyboard focus. 你想设置窗口的焦点应该使用
VB的,Form.SetFocus
API的 SetFocus
The SetActiveWindow function activates a window. The window must be associated with the calling thread's message queue. HWND SetActiveWindow(
HWND hWnd // handle to window to activate
);
设置子窗口获得焦点用下面两行代码即可,
SetForegroundWindow DizhilanWnd ’这一句即可获得焦点,并可以输入文字
PostMessage DizhilanWnd, EM_SETSEL, 0, -1 ‘全选里面的文本而用setfocus函数不行,我已经试验过了,只是光标在里面闪烁,却不能输入文字还是谢谢大家了。