gpt4 book ai didi

c++ - 不与任何其他窗口应用程序共享客户区

转载 作者:行者123 更新时间:2023-11-28 00:31:52 25 4
gpt4 key购买 nike

我想制作一个不与任何其他应用程序共享其客户区的对话框。为此,我将它按 Z 顺序粘贴在屏幕顶部和所有其他窗口的顶部

this->SetWindowPos(&wndTopMost, 10, 0, 0, 0, SWP_NOMOVE);

现在我需要所有其他应用程序显示在它下面,这样它就不会覆盖任何其他窗口应用程序的菜单或顶部 Pane 。

我们将不胜感激任何帮助。

最佳答案

好像你想实现一个appbar,所以你必须使用SHAppBarMessage .

示例(此处 hwnd - 是您的窗口句柄。此窗口应具有 WS_EX_TOOLWINDOW 样式才能正常工作):

#include <Shellapi.h>
#define APPBAR_CALLBACK (WM_USER + 0x01)
APPBARDATA pData;
RECT rt;

....

GetWindowRect(hwnd,&rt);
pData.cbSize=sizeof(pData);
pData.hWnd=hwnd;
pData.uCallbackMessage=APPBAR_CALLBACK;
pData.uEdge=ABE_TOP;
pData.rc=rt;
SHAppBarMessage(ABM_NEW,&pData);
SHAppBarMessage(ABM_SETPOS, &pData);
MoveWindow(pData.hWnd,
pData.rc.left,
pData.rc.top,
pData.rc.right - pData.rc.left,
pData.rc.bottom - pData.rc.top,
TRUE);

要禁用此模式,您应该调用

SHAppBarMessage(ABM_REMOVE,&pData);

关于c++ - 不与任何其他窗口应用程序共享客户区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22555178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com