程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言控制台窗口圖形界面編程之二 用於控制台窗口操作的API函數

C語言控制台窗口圖形界面編程之二 用於控制台窗口操作的API函數

編輯:關於C語言

下面介紹幾個用於控制台窗口操作的API函數,如下:

//獲取控制台窗口信息    
GetConsoleScreenBufferInfo();    
        
//獲取控制台窗口標題    
GetConsoleTitle();    
        
//更改指定緩沖區大小    
SetConsoleScreenBufferSize();    
        
//設置控制台窗口標題    
SetConsoleTitle();    
        
//設置控制台窗口信息    
SetConsoleWindowInfo();

下面的示例程序用於說明此類函數的使用:

#include <stdio.h>    
#include <stdlib.h>    
#include <Windows.h>    
#include <conio.h>    
#define N 255    
        
int main()    
{    
    HANDLE handle_out;  //定義一個句柄    
    CONSOLE_SCREEN_BUFFER_INFO scbi;    //定義一個窗口緩沖區信息結構體    
    COORD size = {80, 25};      //定義一個坐標結構體    
    char strtitle[N];    
    handle_out = GetStdHandle(STD_OUTPUT_HANDLE);   //獲得標准輸出設備句柄    
    GetConsoleScreenBufferInfo(handle_out, &scbi);  //獲得窗口緩沖區信息    
    GetConsoleTitle(strtitle, N);   //獲得當前窗口標題    
    printf("當前窗口標題為:%s\n", strtitle);    
    _getch();    
    SetConsoleTitle("控制台窗口操作");     //設置窗口標題為“控制台窗口操作”    
    GetConsoleTitle(strtitle, N);           //獲得當前窗口標題    
    printf("當前窗口標題為:%s\n", strtitle);    
    _getch();    
    SetConsoleScreenBufferSize(handle_out, size);   // 重新設置緩沖區大小    
    _getch();    
    SMALL_RECT rc = {0, 0, 80-1, 25-1};     // 重置窗口位置和大小    
    SetConsoleWindowInfo(handle_out, 1, &rc);    
    CloseHandle(handle_out);    //關閉標准輸出設備句柄    
    return 0;    
}

其中,SetConsoleScreenBufferSize函數指定新的控制台屏幕緩沖區的大小,以字符列和行為單位。指定的寬度和高度不能小於控制台屏幕緩沖區窗口的寬度和高度。指定的大小也不能小於系統允許的最小大小。這個最低取決於控制台當前的字體大小 (由用戶選定)。

另外,GetConsoleTitle函數的具體實現取是否宏定義了UNICODE(與文件編碼形式有關),所以在部分IDE中可能這段示例編譯不通過,換一個別的編譯器或IDE就行了。本樣例在Code::Blocks 13.12編譯通過。

本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved