Windows下经常会遇到这样一个问题,检测是否有应用程序处于全屏状态,如果有,则需要做一些特别动作。
笔者尝试过不同的方法,
方法一,检测四个角点的hWnd,看他们是否是同一个window,通常对于播放器这种应用程序处于全屏时,会带有一个进度控制条,导致了四个角点属于两个不同的window。
方法二,注册Desktop Toolbars,当有全屏幕程序打开或者关闭的时候都会有ABN_FULLSCREENAPP消息通知,在收到后作处理即可。
下面分别列举这两种方法:
方法一:
bool IsFullScreen()
{
HWND pWnd1 = NULL;
HWND pWnd2 = NULL;
HWND pWnd3 = NULL;
HWND pWnd4 = NULL;
int iCx=GetSystemMetrics(SM_CXSCREEN);
int iCy=GetSystemMetrics(SM_CYSCREEN);
POINT pt1;
pt1.x = 1;
pt1.y = 1;
POINT pt2;
pt2.x = 1;
pt2.y = iCy-1;
POINT pt3;
pt3.x = iCx-1;
pt3.y = 1;
POINT pt4;
pt4.x = iCx-1;
pt4.y = iCy-1;
pWnd1 = Windo