連結已複製
Brief examination with Spy++ shows that in "Full Screen Mode" the output doesn't go to the normal child window. Instead, QW creates another window, with style WS_POPUP, without title, and with class name AppName//"FullWnd". Mechanics of it are not well documented, of course, so you could start some reverse-engineering :-(.
I guess you can try to FindWindow("AppName"//"FullWnd"C, NULL) to see if there's one; if it is, you're in full screen mode. Perhaps you could subclass the FullWnd window right after you find one *)
Another undocumented trick to toggle fullscreen is to
call ClickMenuQQ(LOC(WinFullScreen))
An alternate approach to subclassing is hooking. It is similar, except that hook procedure (WH_KEYBOARD or WH_MOUSE) is called before the message reaches message loop (thus,before subclassing procedure), and it catches messages for all windows in the thread rather than just one. See SetWindowsHookEx (I posted some examples in the past here, so you could do a Forum search for it).
Jugoslav
*) FindWindow is not reliable if there are several instances of your program running simultaneously -- it will detect if any instance is in full screen. A better approach is to EnumThreadWindows(GetCurrentThreadID()...) and check whether GetClassName of one matches.
