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);                    // 关闭输入队列后实现我们窗口的输入队列激活
}

来源:python脚本自动迁移

posted @ 2020-06-24 10:57  jiangcheng_15  阅读(766)  评论(0编辑  收藏  举报