要防止SetWindowPos()使窗口全屏显示,可以采取以下方法:
以下是一个示例代码,演示如何防止SetWindowPos()使窗口全屏显示:
#include <Windows.h>
BOOL IsWindowFullScreen(HWND hWnd)
{
RECT rect;
GetWindowRect(hWnd, &rect);
int screenWidth = GetSystemMetrics(SM_CXSCREEN);
int screenHeight = GetSystemMetrics(SM_CYSCREEN);
if (rect.left == 0 && rect.top == 0 && rect.right == screenWidth && rect.bottom == screenHeight)
{
return TRUE;
}
return FALSE;
}
void SetWindowNotFullScreen(HWND hWnd, int x, int y, int width, int height)
{
if (!IsWindowFullScreen(hWnd))
{
SetWindowPos(hWnd, NULL, x, y, width, height, SWP_NOZORDER);
}
}
int main()
{
HWND hWnd = GetForegroundWindow(); // 获取当前活动窗口的句柄
// 设置窗口为非全屏状态,位置为(100, 100),大小为800x600
SetWindowNotFullScreen(hWnd, 100, 100, 800, 600);
return 0;
}
这段代码中,通过IsWindowFullScreen()函数判断窗口是否已经是全屏状态,如果是则不执行SetWindowPos()函数。而SetWindowNotFullScreen()函数用于将窗口设置为非全屏状态,可以指定窗口的位置和大小。
请注意,以上代码仅为示例,具体实现可能需要根据具体的开发环境和需求进行调整。
领取专属 10元无门槛券
手把手带您无忧上云