Windows中控制台程序的全屏模式开关

高二狗狗狗狗

高二狗狗狗狗

2016-02-19 13:05

有了下面这个Windows中控制台程序的全屏模式开关教程,不懂Windows中控制台程序的全屏模式开关的也能装懂了,赶紧get起来装逼一下吧!
    当你的程序以控制台方式运行时,按下ALT+ENTER可以将屏幕变成全屏模式。但如何在程序中用Win32 API函数来实现这个功能呢?据我所知,微软没有提供有关这方面的任何文档。但是,当用户按下ALT+ENTER时,Windows 9x用如下非凡的加速键ID发送WM_COMMAND消息到控制台窗口。
  
  #define ID_SW99vCH_CONSOLEMODE 0xE00F
  
  这个加速键ID没有对外公开,所以你在Win32 API的有关文档中找不到关于ID_SW99vCH_CONSOLEMODE的内容。
  为了在普通窗口和全屏模式之间往返转换,可以象下面这样用SendMessage函数。
  
  SendMessage(hWnd,WM_COMMAND,ID_SW99vCH_CONSOLEMODE,0);
  
       Windows NT/2000与Windows 9x中控制台程序的全屏模式开关处理方法是不一样的。不能通用。在Windows NT/2000中要使用两个未公开的Win32 API函数来存取控制台窗口。这两个函数是:
  
  BOOL SetConsoleDisplayMode (
  HANDLE hOut,             // 标准输出句柄
  DWord dwNewMode,       // 指定显示模式
  LPDWORD lpdwOldMode, // 用于前一个显示模式值的变量地址
  );
  
  BOOL GetConsoleDisplayMode (
  LPDWORD lpdwMode, //用于当前显示模式值的变量地址
  );
  这两个函数从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);
展开更多 50%)
分享

猜你喜欢

Windows中控制台程序的全屏模式开关

编程语言 网络编程
Windows中控制台程序的全屏模式开关

妙用Windows XP恢复控制台

windows 操作系统
妙用Windows XP恢复控制台

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

windows故障恢复控制台的使用技巧

电脑入门
windows故障恢复控制台的使用技巧

使用Windows故障恢复控制台的方法

电脑入门
使用Windows故障恢复控制台的方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在VC中隐藏控制台程序窗口的实现代码

编程语言 网络编程
在VC中隐藏控制台程序窗口的实现代码

Windows XP教程:详细解说控制台命令

windows 操作系统
Windows XP教程:详细解说控制台命令

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

为什么Windows7系统下IE8浏览器点击网页有杂音

为什么Windows7系统下IE8浏览器点击网页有杂音

jQuery Selector选择器小结

jQuery Selector选择器小结
下拉加载更多内容 ↓