有没有什么办法(如果是,请提出建议 :) )在另一个填充它的窗口内创建窗口,并且宽度和高度始终为 100% 并始终与父窗口保持在同一位置?简而言之,创建与父窗口行为(大小和移动)相同的窗口。现在我有这个:
hWnd = CreateWindowEx(WS_EX_TOOLWINDOW,L"Class", L"Title",WS_VISIBLE | WS_POPUP,
0, 0, 0, 0,hParent, NULL, GetModuleHandle(NULL), NULL );
我正在检查 WM_SIZE
或 WM_WINDOWPOSCHANGING
以了解 CallWndRetProc 中的大小变化。
if(msg->message == WM_WINDOWPOSCHANGING && msg->hwnd == hParent){
WINDOWPOS* pos = (WINDOWPOS*)msg->lParam;
SetWindowPos(hWnd, 0, pos->x, pos->y, pos->cx, pos->cy, SWP_NOACTIVATE);
}
但是有问题,pos
有相对于 hParents 窗口的坐标,而 SetWindowPos 设置相对于整个屏幕的位置。也许有更简单的方法将 hWnd 窗口保持在与 hParent 相同的位置?
最佳答案
您可以使用 GetWindowInfo()查询窗口的当前屏幕位置。使用它,您可以从相对坐标计算出所需的屏幕位置
关于C++在另一个内部创建窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10090764/