建体彩网|中彩网双色球连号|
?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

www9778con:控制臺窗口界面的編程控制(二)

?

三、節制臺窗口操作

用于節制臺窗口操作的API函數如下:

GetConsoleScreenBufferInfo 獲取節制臺窗口信息

GetConsoleTitle 獲取節制臺窗口標題

ScrollConsoleScreenBuffer 在緩沖區中移動數據塊

SetConsoleScreenBufferSize 變動指定緩沖區大年www9778con夜小

SetConsoleTitle 設置節制臺窗口標題

SetConsoleWindowInfo 設置節制臺窗口信息

此外,還有窗口、顯示模式等節制函數,這里不再細說。下枚舉一個示例,法度榜樣如下:

#include

#include

#include

void main()

{

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);

// 獲取標準輸出設備句柄

CONSOLE_SCREEN_BUFFER_INFO bInfo; // 窗口緩沖區信息

GetConsoleScreenBufferInfo(hOut, bwww9778conInfo );

// 獲取窗口緩沖區信息

char strTitle[255];

GetConsoleTitle(strTitle, 255); // 獲取窗口標題

intf("當前窗口標題是:%s\n", strTitle);

_getch();

SetConsoleTitle("節制臺窗口操作"); // 獲取窗口標題

_getch();

COORD size = {80, 25};

SetConsoleScreenBufferSize(hOut,size); // 從新設置緩沖區大年夜小

_getch();

SMALL_RECT rc = {0,0, 80-1, 25-1}; // 重置窗口位置和大年夜小

SetConsoleWindowInwww9778confo(hOut,true ,&rc);

CloseHandle(hOut); // 關閉標準輸出設備句柄

}

必要闡明的是,節制臺窗口的原點坐標是(0, 0),而最大年夜的坐標是緩沖區大年夜小減1,例如當緩沖區大年夜小為80*25時,其最大年夜的坐標是(79, 24)。

四、文本屬性操作

與DOS字符相似,節制臺窗口中的字符也有響應的屬性。這些屬性分為:文本的前景致、背景致和雙字節字符集(DBCS)屬性三種。事實上,我們最關心是文本顏色,這樣可以構造出美不雅的界面。顏色屬性都是一些預定義標識:

FOREGROUND_BLUE 藍色

FOREwww9778conGROUND_GREEN 綠色

FOREGROUND_RED 血色

FOREGROUND_INTENSITY 加強

BACKGROUND_BLUE 藍色背景

BACKGROUND_GREEN 綠色背景

BACKGROUND_RED 血色背景

BACKGROUND_INTENSITY 背景致加強

COMMON_LVB_REVERSE_VIDEO 反色

與文本屬性相關的主要函數有:

BOOL FillConsoleOutputAttribute( // 添補字符屬性

HANDLE hConsoleOutput, // 句柄

wAttribute, // 文本屬性

DWORD nLength, // 個數

COORD dwWriteCoord, // 開始位置

LPDWORD lpNumberOfAttrsWritten // 返回添補的個數

);

BOOL SetConsoleTextAttribute( // 設置WriteConsole等函數的字符屬性

HANDLE hConsoleOutput, // 句柄

WORD wAttributes // 文本屬性

);

BOOL WriteConsoleOutputAttribute( // 在指定位置處寫屬性

HANDLE hConsoleOutput, // 句柄

CONST WORD *lpAttribute, // 屬性

DWORD nLength, // 個數

COORD dwWriteCoord, // 肇端位置

LPDWORD lpNumberOfAttrsWritten // 已寫個數

);

別的,獲取當前節制臺窗口的文本屬性是經由過程調用函數GetConsoleScreenBufferInfo后,在CONSOLE_SCREEN_ BUFFER_INFO布局成員wAttributes中獲得。

五、文本輸出

文本輸出函數有:

BOOL FillConsoleOutputCharacter( // 添補指定命據的字符

HANDLE hConsoleOutput, // 句柄

TCHAR cCharacter, // 字符

DWORD nLength, // 字符個數

COORD dwWriteCoord, // 肇端位置

LPDWORD lpNumberOfCharsWritten // 已寫個數

);

BOOL WriteConsole( // 在當前光標位置處插入指定命量的字符

HANDLE hConsoleOutput, // 句柄

CONST VOID *lpBuffer, // 字符串

DWORD nNumberOfCharsToWrite, // 字符個數

LPDWORD lpNumberOfCharsWritten, // 已寫個數

LPVOID lpReserved // 保留

);

BOOL WriteConsoleOutput( // 向指定區域寫帶屬性的字符

HANDLE hConsoleOutput, // 句柄

CONST CHAR_INFO *lpBuffer, // 字符數據區

COORD dwBufferSize, // 數據區大年夜小

COORD dwBufferCoord, // 肇危坐標

PSMALL_RECT lpWriteRegion // 要寫的區域

);

BOOL WriteConsoleOutputCharacter( // 在指定位置處插入指定命量的字符

HANDLE hConsoleOutput, www9778con// 句柄

LPCTSTR lpCharacter, // 字符串

DWORD nLength, // 字符個數

COORD dwWriteCoord, // 肇端位置

LPDWORD lpNumberOfCharsWritten // 已寫個數

);

可以看出:WriteConsoleOutput函數功能相稱于SetConsoleTextAttribute和WriteConsole的功能。而WriteConsoleOutputCharacter函數相稱于SetConsoleCursorPosition(設置光標位置)和WriteConsole的功能。不過在詳細應用要重視它們的差別。

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

建体彩网
河北十一选五遗漏tp10 保险代理人赚钱吗 福建31选7彩票直播现场 王中透码公司 鹿鼎彩票苹果 360彩票广东11选5 黑龙江22选5 网上麻将软件下载 冠通棋牌微信公众号 重庆时时彩是不是真的