lwei24:哦哦,这样可以在管理员权限下实现拖拽吗?ChangeWndMessageFilterOk这些需要添加那些头文件呢?
 (2023-05-16 10:21) 
 
可以的。
ChangeWndMessageFilterOk忘了贴代码了,如下
BOOL CMainWindow::ChangeWndMessageFilterOk(HWND hWnd, UINT nMessage, DWORD dwAction, PCHANGEFILTERSTRUCT chfit)
{
    typedef BOOL (WINAPI *ChangeWindowMessageFilterOkFn)(HWND, UINT, DWORD, PCHANGEFILTERSTRUCT);
    HMODULE hModUser32 = NULL;
    hModUser32 = LoadLibrary(L"user32.dll");
    if (hModUser32 == NULL)
    {
        qDebug()<<"load failed";
        return FALSE;
    }
    ChangeWindowMessageFilterOkFn pfnChangeWindowMessageFilter = (ChangeWindowMessageFilterOkFn) GetProcAddress(hModUser32, "ChangeWindowMessageFilterEx");
    if (pfnChangeWindowMessageFilter == NULL)
    {
        FreeLibrary(hModUser32);
        qDebug()<<"failed";
        return FALSE;
    }
    FreeLibrary(hModUser32);
    BOOL ret = pfnChangeWindowMessageFilter(hWnd, nMessage, dwAction, chfit);
    const QString strOut = QString("%1 ret = [%2] ExtStatus=[%3]\n").arg(__FUNCTION__, QString::number(ret), QString::number(chfit->ExtStatus));
    qDebug()<<strOut;
    return ret;
}