C語言控制台窗口圖形界面編程(二)


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

[cpp]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
  1. //獲取控制台窗口信息  
  2. GetConsoleScreenBufferInfo();  
  3.   
  4. //獲取控制台窗口標題  
  5. GetConsoleTitle();  
  6.   
  7. //更改指定緩沖區大小  
  8. SetConsoleScreenBufferSize();  
  9.   
  10. //設置控制台窗口標題  
  11. SetConsoleTitle();  
  12.   
  13. //設置控制台窗口信息  
  14. SetConsoleWindowInfo();  

 

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

[cpp]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <Windows.h>  
  4. #include <conio.h>  
  5. #define N 255  
  6.   
  7. int main()  
  8. {  
  9.     HANDLE handle_out;  //定義一個句柄  
  10.     CONSOLE_SCREEN_BUFFER_INFO scbi;    //定義一個窗口緩沖區信息結構體  
  11.     COORD size = {80, 25};      //定義一個坐標結構體  
  12.     char strtitle[N];  
  13.     handle_out = GetStdHandle(STD_OUTPUT_HANDLE);   //獲得標准輸出設備句柄  
  14.     GetConsoleScreenBufferInfo(handle_out, &scbi);  //獲得窗口緩沖區信息  
  15.     GetConsoleTitle(strtitle, N);   //獲得當前窗口標題  
  16.     printf("當前窗口標題為:%s\n", strtitle);  
  17.     _getch();  
  18.     SetConsoleTitle("控制台窗口操作");     //設置窗口標題為“控制台窗口操作”  
  19.     GetConsoleTitle(strtitle, N);           //獲得當前窗口標題  
  20.     printf("當前窗口標題為:%s\n", strtitle);  
  21.     _getch();  
  22.     SetConsoleScreenBufferSize(handle_out, size);   // 重新設置緩沖區大小  
  23.     _getch();  
  24.     SMALL_RECT rc = {0, 0, 80-1, 25-1};     // 重置窗口位置和大小  
  25.     SetConsoleWindowInfo(handle_out, 1, &rc);  
  26.     CloseHandle(handle_out);    //關閉標准輸出設備句柄  
  27.     return 0;  
  28. }  

 

 

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

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM