如何做一个象输入法虚拟键盘那样的窗体???急急急!(100分相送!)(100分)

  • 主题发起人 主题发起人 kasly
  • 开始时间 开始时间
K

kasly

Unregistered / Unconfirmed
GUEST, unregistred user!
如何做一个窗体类似输入法一样的虚拟键盘,即在点击该窗体时不影响原来<br>已经击活的窗体????<br><br>谢谢你能尽快给予支持,我将以大比分赠送作为感谢!
 
&gt;点击该窗体时不影响原来已经击活的窗体????<br><br>?????
 
:o*o你说的基本上是对的!<br><br>即点击你做好的窗体时,此窗体仍没有焦点,但却可以发消息给其他已经击活了的窗体!你看看输入法的虚拟键盘就明白了!<br><br>——————我是本问题的提出者——————————
 
点击窗体,执行完代码后:<br>SetForeGroundWindow(Application.Mainform.Handle);
 
在procedure WMMouseActivate(var Message: TMessage);message WM_MOUSEACTIVATE; 中:<br><br>&nbsp; Message.Result := MA_NOACTIVATE;<br><br>这是以前我写一个类似于ComboBox的控件时用的, 由一个Edit加自编的一个弹处Panel组合而成.<br><br>&nbsp; TPopupPanel = class(TCustomControl)<br>&nbsp; private<br>&nbsp; &nbsp; procedure WMMouseActivate(<br>&nbsp; &nbsp; &nbsp; var Message: TMessage); message WM_MOUSEACTIVATE;<br>&nbsp; protected<br>&nbsp; &nbsp; FPanel: TPanel;<br>&nbsp; &nbsp; FEditor: TWinControl;<br>&nbsp; &nbsp; procedure CreateParams(var Params: TCreateParams); override;<br>&nbsp; &nbsp; procedure InvalidateEditor; virtual;<br>&nbsp; public<br>&nbsp; &nbsp; constructor Create(AOwner: TComponent); override;<br>&nbsp; &nbsp; procedure Hide;<br>&nbsp; &nbsp; procedure Show(P: TPoint);<br>&nbsp; &nbsp; //property OnCloseUp: TCloseUpEvent read FCloseUp write FCloseUp;<br>&nbsp; end;<br><br><br>procedure TPopupPanel.WMMouseActivate(var Message: TMessage);<br>begin<br>&nbsp; Message.Result := MA_NOACTIVATE;<br>end;<br>
 
嘻嘻,不好意思,我已经把上面的问题解决了,嘻嘻!<br>但又有一个问题存在,就是此失去焦点(即非击活状态)的窗体,<br>如何在它上面发消息给其他已经击活的窗体!<br>比如说:点击此窗体上按钮,如何发个消息个其他已经击活的窗体呀?<br>    我试过了,但只有鼠标移动的事件能捕捉到,其他窗体事件都失效了!<br><br>谢谢,帮忙把这个问题解决,我一样给100分,嘻嘻!
 
对不起我补充一句,上面我开始提的问题以前已经有人提过了,我是后来才看到的!<br>所以,请大家间量!<br><br>另外::xWolf的方法我试过了,不好用,无法实现!<br><br>
 
Email给你的程序看看行吗?<br><br>Email给你的程序看看行吗?<br><br>
 
多人接受答案了。
 
后退
顶部