You should create a popup window with WS_EX_TOOLWINDOW style.

解决方案 »

  1.   


        另外,如果你想查看这种窗口的风格的话,可以自己编写一个类似spy++的程序,也许麻烦,可是以后就一劳永逸了。我是懒得写呀,如果你想写我可以帮你。
      

  2.   

    在LISTBOX中选中后,可以用SetFocus把焦点重新设到编辑框上。
      

  3.   

    to andygood:
     加上WS_EX_TOOLWINDOW后,焦点也会转移,编程跟踪VC IDE发现其窗口为自己生成的窗口,STYLE:WS_VISIBLE|WS_POPUP|WS_CLIPSIBLINGS|WS_CLIPCHILDREN;
    EX_STYLE:WS_EX_TOPMOST|WS_EX_TOOLWINDOW; 我用该Style创建一自定义窗口,发现焦点也会转移。请问老兄还有其它办法或补充?
    to wuxin:
      可以用SetFocus把焦点重新设到编辑框上,但是,窗口闪烁太厉害!大侠们可有其它方法?谢谢!
      

  4.   

    直接动态生成一个listbox就可以了,不要生成一个popup窗口,在上面放一个listbox,这样就没有闪烁的可能性了
    最好自己生成一个基与ClistBox的函数,重载下列函数
    Create  //创建窗口,并初始化
    PostNcDestroy //delete this
    OnKillfocus  //DestroyWindow
    PreTranslateMessage //处理按下ok和esc键的消息还不行的话,email我
      

  5.   

      谢谢Kerrie,我试过,还不行!  还有其它建议吗?
      

  6.   

    我用VB做过。方法是截获WM_MOUSEACTIVATE消息,返回MA_NOACTIVATE。
    但好像不能用LISTBOX,要自己画。不过还好,反正也要自己画,因为要有ICON。
    同时还要处理POPUP窗口的MOUSE消息以及EDIT窗口的KEY消息。
      

  7.   

    to taolei:
      能给我你的源码吗?
      谢谢!
      

  8.   

    to taolei:
      谢谢,我已收到你的程序,编译后发现正是我想要的,再次感谢!