如何编写一个永不获得焦点的窗体?(类似虚似键盘) 如何建立一个窗口,类似虚拟键盘一样,即使点击它,也不会取得系统的焦点? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没看明白意思....-_-!是不是指 Form1.Enable:=false; ??? WM_GETFOCUS????(好象是这个消息吧,或者是WM_FOCUS,你自己找找)的时候,根据参数可以获得失去焦点的窗口,然后把焦点设回去.SetFocus好象也可以重载的. 看能不能这样变通一下:挂个钩子,定义两个HWND类型变量NewHd,OldHd,捕获每次鼠标点击的消息以及点击的地方的Handle-〉NewHd,而OldHd就是上次记录的NewHd,然后检查这个NewHd是不是自己的Handle,如果是就模拟点击一次OldHd,并把焦点设置到NewHd,而如果不是自己的Hd,就把OldHd赋值为NewHd 我试过了楼上所说的,当自己的窗口获得了焦点后,再模拟点击回原窗口,网上也有类似的程序是这样的,但都得不到好的效果。原因有以下:1、有些程序,如游戏,一但失去焦点会暂停等,即使你点击回,也不会继续。2、绐终有时间差。达不到 Windows 的虚拟键盘那种效果。 我找到一个在屏幕左上角显示时间的程序代码,可以实现不获得焦点,不知道对楼主有没有用:procedure ThreadProc;var hScreenDC: hdc; SystemTime: _SYSTEMTIME; Temp: string; MyOutput: PChar;begin while true do begin Sleep(100); hScreenDC := GetDC(0); GetLocalTime(SystemTime); Temp := format('Current Time is %d-%d-%d %d:%d:%d', [SystemTime.wYear, SystemTime.wMonth, SystemTime.wDay, SystemTime.wHour, SystemTime.wMinute, SystemTime.wSecond]); MyOutPut := Pchar(temp); TextOut(hScreenDC, 0, 0, MyOutPut, lstrlen(MyOutPut)); ReleaseDC(0, hScreenDC); end;end; 另外关于用钩子的办法:我查了一下,WH_GETMESSAGE是可以修改消息的,那么这样就可以实现不让焦点转移到我的程序上而是直接留在原来的程序上了,当钩到WM_SETFOCUS消息时就作判断,判断后如果是我的Handle就修改消息,改称原来的Handle 请举例说明带单引号的数据的保存问题的解决 请问怎么实现对无版权的文件(无壳的)添加版权? 恳求 大数据量更改的 解决方法 TListbox的问题? 怎样用SQL语句判断ORACLE数据库中是否存在某一表 ISAPI的怪事 你们知道delphi国际认证登陆武汉了么! 如何设置BDE与ACCESS的连接参数??在线等待 怎样用程把"c:""d:"共享呀?只讲读、完全! 该变数据库显示字段名称 用Delphi做的上位机,怎样把下位机传来的一组数据在上位机里用图形显示出来呢? ADOQuery控件断网重连问题!
是不是指 Form1.Enable:=false; ???
procedure ThreadProc;
var
hScreenDC: hdc;
SystemTime: _SYSTEMTIME;
Temp: string;
MyOutput: PChar;
begin
while true do
begin
Sleep(100);
hScreenDC := GetDC(0);
GetLocalTime(SystemTime);
Temp := format('Current Time is %d-%d-%d %d:%d:%d', [SystemTime.wYear,
SystemTime.wMonth,
SystemTime.wDay,
SystemTime.wHour,
SystemTime.wMinute,
SystemTime.wSecond]);
MyOutPut := Pchar(temp);
TextOut(hScreenDC, 0, 0, MyOutPut, lstrlen(MyOutPut));
ReleaseDC(0, hScreenDC);
end;
end;
我查了一下,WH_GETMESSAGE是可以修改消息的,那么这样就可以实现不让焦点转移到我的程序上而是直接留在原来的程序上了,当钩到WM_SETFOCUS消息时就作判断,判断后如果是我的Handle就修改消息,改称原来的Handle