批注:这种方法不太方便,因为你必须实现一个appbar,可能是个假的,但还是不方便。
add by debehe 2008.1.22
我之前用过的方法有两种:
1.得到当前激活窗口,比较他与desktop的大小
2.以屏幕4个角的4个点为坐标分别得到4个窗口,判断这4个窗口是否同一个
这两个方法“都可以”,应该我他能判断得出有游戏正在全屏状态,但是这毕竟不是“官方做法”,今天我的朋友gzh告诉我了这么一个“官方做法”,看来有空要多看看shell方面的知识了。
官方做法:
可以直接从msdn上查到,呵呵,原来我也不知道。下面两个分别是中文和英文版msdn中的地址
ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.WIN32COM.v10.en/shellcc/platform/shell/reference/messages/abn_fullscreenapp.htm
或
ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.WIN32COM.v10.en/shellcc/platform/shell/reference/messages/abn_fullscreenapp.htm
ABN_FULLSCREENAPP Notification
实现(具体看一下msdn就好了,地址都贴在上面了,呵呵,自己看会比我说的清楚):
调用函数:fRegistered = (BOOL) SHAppBarMessage(ABM_NEW, pabd);
参数:调用之前设置好pabd,uCallbackMessage设为ABN_FULLSCREENAPP
返回值:fOpen = (BOOL) lParam;