SetActiveWindow为什么不能激活最小化的程序窗口
问题点数:20、回复次数:3Top
1 楼sundayboys(sunboy)回复于 2001-02-11 10:50:00 得分 5
函数功能:该函数激活一个窗口。该窗口必须与调用线程的消息队列相关联。//仔细看看这句
函数原型:HWND SetActiveWindow(HWND hWnd);
参数:
hWnd:将被激活的最顶层窗口。
返回值:若函数调用成功,则返回原先活动窗口的句柄。若函数调用失败,则返回值为NULL。若要获得更多错误信息,可以调用GetLastError函数。
备注:SetActiveWindow函数激活一个窗口,但当应用程序处于后台时,将不激活指定窗口。当应用程序激活窗口时处于前台,则窗口将被放到前台。
若hWnd参数指定的窗口是被调用线程创建的,调用线程的活动窗口的状态将被设置到hWnd中。否则,调用线程的活动窗口的状态被设为NULL。
从另一方面讲,SetForegroundWindow窗口函数激活一个窗口并将其强制为前台的。当应用程序要显示关键错误或需要用户立即注意的信息时,应只能调用SetForegroundWindow函数。
使用AttachThreadInput函数可将一个线程的输人处理连接到其他线程。这使得调用SetActiveWindow函数的线程可以激活与其他线程的消息队列相关的窗口。Top
2 楼gaoql(雪淞)回复于 2001-02-11 12:14:00 得分 0
为什么不用ShowWindow()呢?Top
3 楼laza(青)回复于 2001-02-16 08:54:00 得分 15
SetForegroundWindowTop




