Ну вот кажется все, прощай водка (aka перцовка, горилка...) Как програмно консольное окошко в full-screen включить? Тоесть то, что при Alt+Enter случается?
Господи... Basic это кощунство Вот такая хрень: Код (Text): #include <windows.h> void main(void) { COORD coord; coord.X=80; coord.Y=25; SetConsoleDisplayMode(GetStdHandle(STD_OUTPUT_HANDLE),CONSOLE_FULLSCREEN_MODE,&coord); } Работать не хочет В MSDN сказано, что такая функция есть, а VC.NET 2003 говорит, что нет Даже после прописания #define _WIN32_WINNT 0x0501 в windows.h Да и в MSDN сказано, что работает только начиная с WinXP. Нет линка на сорец на нормальном языке?
При чем здесь язык? Суть - в использовании недокументированной SetConsoleDisplayMode. В MSDN написано, что она реализована с XP, но на моей w2ksp4 она есть. Потому и считается недокументированной. Не хочешь - шли Alt-Enter окну. -- Приаттачь свой исходник, если не сложно. Проверю у себя
Вот такое у меня работает: Код (Text): #include "stdafx.h" #include <windows.h> typedef UINT (CALLBACK* SCDM)(void*,DWORD,_COORD*); SCDM SetConsoleDisplayMode; void main(void) { COORD coord; coord.X=80; coord.Y=25; HMODULE lib=LoadLibrary("kernel32.dll"); SetConsoleDisplayMode = (SCDM)GetProcAddress(lib,"SetConsoleDisplayMode"); SetConsoleDisplayMode(GetStdHandle(STD_OUTPUT_HANDLE),1,&coord); //SetConsoleDisplayMode(); };
_DEN_ Вот этот код не пробовал? У меня сейчас машина с win2k занята... позже проверю. Q> Как переключить консоль в полный экран и обратно? A> (c)1999 Ashot Oganesyan K, SmartLine, Inc mailto:ashot@aha.ru Когда Вы запускаете свое приложение в консольном окне Вы можете нажать ALT+ENTER для переключения консоли в полный экран.Но нет документированных функций,чтобы сделать это.Однако Windows9X посылает сообщение WM_COMMAND со специальным идентификатором,когда пользователь нажимает ALT+ENTER: #define ID_SWITCH_CONSOLEMODE 0xE00F Для переключения режимов Вы можете использовать ф-ию SendMessage: SendMessage(hWnd,WM_COMMAND,ID_SWITCH_CONSOLEMODE,0); Однако это не работает в Windows NT/2000. Windows NT/2000 содержит две недокументированные функции,которые позволяют нам добраться до консольного окна: BOOL SetConsoleDisplayMode ( HANDLE hOut, // standard output handle DWORD dwNewMode, // specifies the display mode LPDWORD lpdwOldMode, // address of variable for previous value of display mode ); BOOL GetConsoleDisplayMode ( LPDWORD lpdwMode, // address of variable for current value of display mode ); Эти функции экспортируются Kernel32.dll, но Kernel32.lib их не содержит. Поэтому мы вынуждены использовать функцию GetProcAddress: typedef BOOL (WINAPI *PROCSETCONSOLEDISPLAYMODE)(HANDLE,DWORD,LPDWORD); typedef BOOL (WINAPI *PROCGETCONSOLEDISPLAYMODE)(LPDWORD); PROCSETCONSOLEDISPLAYMODE SetConsoleDisplayMode; PROCGETCONSOLEDISPLAYMODE GetConsoleDisplayMode; HMODULE hKernel32 = GetModuleHandle("kernel32"); SetConsoleDisplayMode = (PROCSETCONSOLEDISPLAYMODEELLWND) GetProcAddress(hKernel32,"SetConsoleDisplayMode"); GetConsoleDisplayModeplayMode = (PROCGETCONSOLEDISPLAYMODE) GetProcAddress(hKernel32,"GetConsoleDisplayMode"); HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); DWORD dwOldMode; SetConsoleDisplayMode(hOut,1,&dwOldMode);