BCXLogo   BCX Console Demonstration Program S85.bas

 '-----------------------------------------------------
 ' This program demonstrates toggling full screen mode
 ' This version works in Win95/98/ME/NT
 '-----------------------------------------------------
 
 DIM A
 
 FOR A = 1 TO 4
   ToggleFullScreen()
   Sleep(2000)                  'delay 2 second each iteration
 NEXT A
 
 SUB ToggleFullScreen()
   DIM SetConsoleDisplayMode AS FARPROC
   DIM GetConsoleDisplayMode AS FARPROC
   DIM Proc_Ptr              AS FARPROC
   DIM hKernel32             AS HMODULE
   DIM hOut      AS HANDLE
   DIM dwOldMode AS DWORD
   DIM hConWnd AS HWND
   DIM ConTxt$
 
   CONST ID_SWITCH_CONSOLEMODE = 0xE00F
 
   IF IsNT() THEN
     ' ------------------------------------------------
     ' taken from http://www.codepile.com/tric16.shtml
     ' ------------------------------------------------
     hKernel32 = GetModuleHandle("kernel32.dll")
     Proc_Ptr = GetProcAddress(hKernel32, "SetConsoleDisplayMode")
     SetConsoleDisplayMode = MakeProcInstance(Proc_Ptr, hKernel32)
     Proc_Ptr = GetProcAddress(hKernel32, "GetConsoleDisplayMode")
     GetConsoleDisplayMode = MakeProcInstance(Proc_Ptr, hKernel32)
     hOut = GetStdHandle(STD_OUTPUT_HANDLE)
     GetConsoleDisplayMode(&dwOldMode)
     SetConsoleDisplayMode(hOut, 1 XOR dwOldMode, 0)
   ELSE
     GetConsoleTitle(ConTxt$, SIZEOF(ConTxt$))
     hConWnd = FindWindow("tty", ConTxt$)
     SendMessage(hConWnd, WM_COMMAND, ID_SWITCH_CONSOLEMODE, 0)
   END IF
 END SUB
 
 FUNCTION IsNT()
   DIM dwVersion AS DWORD
   dwVersion = GetVersion()
   IF (dwVersion < 0x80000000) THEN
     FUNCTION = TRUE
   ELSE
     FUNCTION = FALSE
   END IF
 END FUNCTION