VC 窗口置顶并激活为当前窗体
转载请注明来源:https://www.cnblogs.com/hookjc/
if (this != GetForegroundWindow()) // 比较当前的程序的指针 不等于 当前系统激活窗口的指针 话,就自动置顶并激活
{
this->ShowWindow(SW_RESTORE); // 此API是为了在窗口最小化下恢复显示(相当于置顶),我的设计窗口没有最大化,自己根据情况改
HWND hCurWnd = NULL;
DWORD lMyID;
DWORD lCurID;
hCurWnd = ::GetForegroundWindow();
lMyID = ::GetCurrentThreadId();
lCurID = ::GetWindowThreadProcessId(hCurWnd, NULL);
::AttachThreadInput(lMyID, lCurID, TRUE); // 连接当前激活窗口和我们将要激活窗口的输入队列
this->SetForegroundWindow(); // 此API 激活我们的窗口,但是没有AttachThreadInput的话,就不能正常的对窗口互动
::AttachThreadInput(lMyID, lCurID, FALSE); // 关闭输入队列后实现我们窗口的输入队列激活
}