如何做 QQ 表情那种提示框,显示出来,但聊天窗口不失去焦点?QQ 聊天窗口点表情,会出一个 Panel 或是窗口,
但这个窗口显示时,主窗体不会失去焦点。而如如果点一下别的地方,这个窗体就会自动关闭我的做法是用一个窗体来做,但问题是这个窗体显示时,聊天窗体会失去焦点,看起来不好看。如果我用 SW_NOACTIVE 方式来显示这个窗体,那我点别的地方,这个窗体又不会失去焦点,也就不会自动关闭。我应该怎么办?

解决方案 »

  1.   

    选用panel做,而且点击的按钮也不能选button,选用不触发焦点的按钮控件。
      

  2.   

    我做过类似的东西。
    你的弹出窗口不要用ShowModal模式,直接用Ontop...的方式弹出(具体属性值忘了,很久没有编程了),好像需要把Parent设成主窗口还是什么的。至于焦点的问题,需要你用代码控制的。
      

  3.   

    ShowWindow(Handle, SW_SHOWNOACTIVATE); 
      

  4.   


    Handle是指那个句柄,如何使用?
      

  5.   

    ShowWindow(Handle, SW_SHOWNOACTIVATE); 这样是显示了,但如果我没点那个弹出的窗口,而是直接别别的地方,那这个窗口不会消失
      

  6.   

    不用Form,用Panel,在相应事件中修改Panel.Visible即可
      

  7.   

    弹出的框用Form做,设置FormSytle=fsStayOnTop,在OnDeactivate事件中加一句Free
      

  8.   

    你可以用Panel做,也可用窗口做
    假设你的主窗口是A
    弹出窗口是B
    B的属性如下:
    B.borderstyle = bsNone;就是没有边框和标题栏
    然后定好位置在A中解发
    B := TB.create(nil);
    B.top := 
    B.left := 
    B.width := 
    B.Height := 
    B.parent := A;
    B.show;
    搞定.
    测试过的,肯定没有问题.