请各位帮帮忙,我想做一个如TDateTimePicker中的下拉的日历的窗口,在窗口的外部任意处按下滑鼠,下拉的窗口就关闭了,当然我不是想要一个简单的弹出式窗口,是要象TDateTimePicker中的一样,我看了TDateTimePicker的源码,但看不懂,太长了。还看了Rxlib的,RXLIB中是用一个PopUPwindow来实现的,但我还是没有找到它是如何show如何hide的代码,还须各位明白的大大们给俺讲讲这实现的原理和做法,先谢谢各位了! 

解决方案 »

  1.   

    >>PopUPwindow来实现的,但我还是没有找到它是如何show如何hide的代码
    在 form or 控件失去焦点的时候,就hide
    处理 OnDeactivate事件
      

  2.   

    aiirii(ari-爱的眼睛):
    谢谢你的回答,form在show时,主窗体并没有失去焦点,而PopUPwindow也能被操作,我又看了一下源码,发现是用一个wincontrol来包装PopUPwindow,而后再show,但我还是一头雾水,不大明白这原理是什么
      

  3.   

    这个Form是主窗体的一个控件(好象Edit),他获得焦点时,主窗体标题栏不会边灰。
    要隐藏他一般有3个条件。
    1。操作完毕,没必要再显示了。这个容易判断。
    2、在 form 失去焦点的时候,就hide。也就是说,主窗口失去焦点(标题栏变灰).这个就是Aiirii说的 处理该控件所在窗体的OnDeactivate事件。
    3、该控件失去焦点,你点了其他的控件,比如说一个Edit.这时处理该控件的OnExit事件。