H hubo927 Unregistered / Unconfirmed GUEST, unregistred user! 2005-06-15 #1 我用buttonedit + checklist合成一控件,点击edit上的button时,checklist显示,可在edit和checklist外的地方点击时,怎样让checklist隐藏?控件应该拦截什么消息?
我用buttonedit + checklist合成一控件,点击edit上的button时,checklist显示,可在edit和checklist外的地方点击时,怎样让checklist隐藏?控件应该拦截什么消息?
H hubo927 Unregistered / Unconfirmed GUEST, unregistred user! 2005-06-15 #2 我用buttonedit + checklist合成一控件,点击edit上的button时,checklist显示,可在edit和checklist外的地方点击时,怎样让checklist隐藏?控件应该拦截什么消息?
我用buttonedit + checklist合成一控件,点击edit上的button时,checklist显示,可在edit和checklist外的地方点击时,怎样让checklist隐藏?控件应该拦截什么消息?
B bjaman Unregistered / Unconfirmed GUEST, unregistred user! 2005-06-15 #3 可以在Form的OnMouseUp事件里判断Button.Focused,当点击到Button时,其Focused= True,否则必然为False. if Button.Focused then checkList.Visible := true else checkList.Visible := false;
可以在Form的OnMouseUp事件里判断Button.Focused,当点击到Button时,其Focused= True,否则必然为False. if Button.Focused then checkList.Visible := true else checkList.Visible := false;
H hubo927 Unregistered / Unconfirmed GUEST, unregistred user! 2005-06-15 #4 因为我这是做成的一个控件,所以不想在form中对控件进行这样的控制,在控件内部应该怎么控制呢?
H hubo927 Unregistered / Unconfirmed GUEST, unregistred user! 2005-06-15 #6 to 鳄鱼先生: 能说的详细些吗?给点简单的代码。
K kinneng Unregistered / Unconfirmed GUEST, unregistred user! 2005-06-18 #9 要代码 procedure CANCELMODE(var Message:TMessage); message CM_CANCELMODE; procedure form1.CANCELMODE(var Message:TMessage); begin checkList.Visible := false; end; 大概是这样,楼主调试一下
要代码 procedure CANCELMODE(var Message:TMessage); message CM_CANCELMODE; procedure form1.CANCELMODE(var Message:TMessage); begin checkList.Visible := false; end; 大概是这样,楼主调试一下
晶 晶晶 Unregistered / Unconfirmed GUEST, unregistred user! 2005-06-18 #10 还是换个思路吧(让组件本身来处理更好一点!): 你自己继承checklist的类,然后添加一个消息响应过程响应WM_KILLFOCUS,或者使用GetWindowLong/SetWindowLong子类化checklist,在窗口过程里面处理WM_KILLFOCUS! 当前窗口如果失去焦点,系统会发送这个消息给你的,你可以在这里处理,将自己(checklist)隐藏。
还是换个思路吧(让组件本身来处理更好一点!): 你自己继承checklist的类,然后添加一个消息响应过程响应WM_KILLFOCUS,或者使用GetWindowLong/SetWindowLong子类化checklist,在窗口过程里面处理WM_KILLFOCUS! 当前窗口如果失去焦点,系统会发送这个消息给你的,你可以在这里处理,将自己(checklist)隐藏。
K kinneng Unregistered / Unconfirmed GUEST, unregistred user! 2005-06-18 #11 楼上说的对,也要拦截WM_KILLFOCUS,CANCELMODE,一个是本窗口内焦点转移时发生,另一个是整个程序窗口的焦点转到其他程序去时发生,只要两个都拦截,那么不管是窗口内或者窗口外,只要是在checklist外点击都会隐藏。
楼上说的对,也要拦截WM_KILLFOCUS,CANCELMODE,一个是本窗口内焦点转移时发生,另一个是整个程序窗口的焦点转到其他程序去时发生,只要两个都拦截,那么不管是窗口内或者窗口外,只要是在checklist外点击都会隐藏。