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

來源:互聯網
上載者:User

下面介紹幾個用於控制台視窗操作的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編譯通過。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.