怎样才能使激活的后台程序获得Focus? 有一棘手问题(很惭愧)请教高手: 一后台运行的程序,在系统发生某一事件会后激活,使用SetWindowPos()虽然能窗口置为前台显示,总是不能获得输入焦点(兄弟我甚至使用event_mouse()模拟鼠标点击也不行)。 如肯赐教,万分感谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SetForegroundWindow()也试过,在WIn2000/NT下不灵。我试过金山词霸的界面,激后也不能获得输入焦点,是否也没有解决这个部题。 楼上说的 SetForegroundWindow 如果在自己的进程内调用时可以的,如果相激活其他的进程的窗口就不行了,Microsoft 在 Win2k/xp 下已经削弱了这个函数的功能,具体的可以参考一下 msdn.如果要把其它进程的窗口带到前台需要调用 AttachThreadInput, 下面的内容来自 vckbase---------------------如何在2K/xp下使窗口获取焦点在2K/XP下我们可以用 AttachThreadInput 和SetForegroundWindow来有效的获取焦点。//捕捉并设置当前焦点窗口为我们的窗口AttachThreadInput( GetWindowThreadProcessId( ::GetForegroundWindow(),NULL), GetCurrentThreadId(),TRUE);//置我们的为焦点窗口SetForegroundWindow();SetFocus(); //释放threadAttachThreadInput( GetWindowThreadProcessId( ::GetForegroundWindow(),NULL), GetCurrentThreadId(),FALSE); 先使用SetWindowPos,接着使用SetForegroundWindow,有些时候必须这样才行:SetWindowPos(hWnd,HWND_TOP,//MOST, wWindowLeft,wWindowTop,0,0, SWP_NOSIZE|SWP_SHOWWINDOW);SetForegroundWindow(hWnd);不行再加上SetFocus( hWnd ); 谢谢sans(sans)、 gboy(hello)、alfxiao(alfxiao) 。SetFocus( hWnd ) or BringWindowToTop()在调试时都试过了,在win2000/nt下不灵。gboy(hello)的方法待去试一试。 我用MFC的Dialog,他说error C2065: 'hWnd' : undeclared identifierSetForegroundWindow(hWnd);参数是什么我是新手 客户端用CSocket 进行通信receive()函数总是返回错误信息! 蔡鸟级的问题 可以随意拖动的Edit控件, 如何通过鼠标消息实现? 高手帮忙!做一个关于人事管理系统的小程序遇到问题 声音播放问题 ======200分求助两个比较恼头的问题===== 动态创建的CStatic如何删除? 如何才能成为一个成功的程序员?? 下周考C语言的免修,突然发现我对指针其实不了解,怎么办啊!~~~~~~~~~ 求助vc++中多线程的一个具体实现例子 那位高手能告诉我vc中的rc文件中调用afxres.h是什么意思? afxres.h在工程当中有什么作用? 不知道在这儿问合不合适,请版主不要删贴
我试过金山词霸的界面,激后也不能获得输入焦点,是否也没有解决这个部题。
下面的内容来自 vckbase---------------------
如何在2K/xp下使窗口获取焦点
在2K/XP下我们可以用 AttachThreadInput 和SetForegroundWindow来有效的获取焦点。//捕捉并设置当前焦点窗口为我们的窗口
AttachThreadInput(
GetWindowThreadProcessId(
::GetForegroundWindow(),NULL),
GetCurrentThreadId(),TRUE);//置我们的为焦点窗口
SetForegroundWindow();
SetFocus(); //释放thread
AttachThreadInput(
GetWindowThreadProcessId(
::GetForegroundWindow(),NULL),
GetCurrentThreadId(),FALSE);
SetWindowPos(hWnd,HWND_TOP,//MOST,
wWindowLeft,wWindowTop,0,0,
SWP_NOSIZE|SWP_SHOWWINDOW);
SetForegroundWindow(hWnd);
不行再加上SetFocus( hWnd );
SetFocus( hWnd ) or BringWindowToTop()在调试时都试过了,在win2000/nt下不灵。
gboy(hello)的方法待去试一试。
error C2065: 'hWnd' : undeclared identifier
SetForegroundWindow(hWnd);
参数是什么
我是新手