怎样实现ComboBox离开时关闭DropDown菜单。
我自己作了一个ComboBox控件(一个Panel上放一个Edit和一个LisBox)
请问如何实现:在Form上单击鼠标后,弹出的下拉菜单被关闭。
由于做的是独立于Form得空间,
请问,在控件的代码中如何加入上述处理。
问题点数:50、回复次数:3Top
1 楼willcheng(寂静之岭)回复于 2005-05-27 10:09:29 得分 0
有两个方案,不知道是否可行:
1。找到MyComboBox的父控件指针,替换其OnClick事件,在其中处理,关闭下拉框。
疑问,父控件的父控件也要同样处理么,还是一直通过父控件找到Form,在Form中处理.
2。在MyComboBox中捕获鼠标单击消息,在消息处理函数中,关闭下拉框。
疑问,在MyComboBox以外的区域单击鼠标能捕获到么?Top
2 楼jishiping(JSP 季世平)回复于 2005-05-27 10:53:09 得分 50
2。在MyComboBox中捕获鼠标单击消息,在消息处理函数中,关闭下拉框。
疑问,在MyComboBox以外的区域单击鼠标能捕获到么?
-----------------------------------------------------------------
可以。简单的办法,设置 Mouse->Capture = ListBox->Handle; 这样在MyComboBox以外的区域单击鼠标也 能捕获到。注意,当你不需要这样时,别忘了调用 Mouse->Capture = NULL;Top
3 楼jishiping(JSP 季世平)回复于 2005-05-27 10:54:43 得分 0
注意,使用 Mouse->Capture 时,必须是在控件的 OnMouseDown 中拦截,而不是在 OnClick 中拦截。Top




