如何编写一个永不获得焦点的窗体?(类似虚似键盘) 如何建立一个窗口,类似虚拟键盘一样,即使点击它,也不会取得系统的焦点? 解决方案 » 免费领取超大流量手机卡,每月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 无窗体的单元文件如何引用主窗体的控件 求教一個 SELECT 語句 idftp控件中的一个问题 ado连access数据库,access数据库放于光盘上,如果在win2000系统下,一切正常, 初学者问题:为什么我用decodetime()函数得到的毫秒不可用? 关于spcom控件的问题 困扰我一个月的问题,就不信没人能答得出! (**挑战高手**) 数据库主键冲突的异常捕获问题,急。 为什么我的paradox7的表中记录序号会出现负数? 哪能下载TTrayIcon控件? 用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