控制台程序——显示模式控制

 

我们知道在控制台程序运行的时候,Alt+Enter可以将控制台窗口变成全屏模式,好像又回到了DOS时代的感觉哦!那么我们怎么在程序中来控制呢?

在Windows NT/2000中要使用两个未公开的Win32 API函数来控制控制台程序的窗口显示状态。这两个函数是:
BOOL SetConsoleDisplayMode (
HANDLE hOut,              // 标准输出句柄
DWORD dwNewMode,        // 指定显示模式
LPDWORD lpdwOldMode, // 用于前一个显示模式值的变量地址
);

BOOL GetConsoleDisplayMode (
LPDWORD lpdwMode, //用于当前显示模式值的变量地址
);

并且都在动态链接库'kernel32'中

下面是将控制台窗口最大化的演示代码:

ContractedBlock.gif ExpandedBlockStart.gif Code
{$APPTYPE CONSOLE} 

program FullScreen; 
uses 
  Classes, 
  Windows; 

type 
  TSetConsoleDisplayMode 
= function(hOut: THandle; dwNewMode: DWORD; lpdwOldMode: LPDWORD): BOOL; stdcall

var 
  hOutput: THandle; 
  dwOldMode: DWORD; 
  hKernel32: HMODULE; 
  SetConsoleDisplayMode: TSetConsoleDisplayMode; 
{$R *.RES} 
begin 
  hOutput :
= GetStdHandle(STD_OUTPUT_HANDLE); 
  hKernel32 :
= GetModuleHandle('kernel32'); 
  @SetConsoleDisplayMode :
= GetProcAddress(hKernel32,'SetConsoleDisplayMode'); 

  SetConsoleDisplayMode(hOutput, 
1, @dwOldMode); 

  SetConsoleTitle(
'Demo-控制台程序全屏');                                               
  Writeln(
'在Dephi下实现控制台程序的全屏显示!'); 
  Writeln(
'用Alt+Enter切换全屏和窗口'); 

  Readln; 
end.

转载于:https://www.cnblogs.com/yzmx/archive/2009/05/10/1453840.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值