linux控制台界面编程,控制台窗口界面的编程控制(二)
#include <WINDOWS.H>
#include <STDIO.H>
#include <STRING.H>
HANDLE hOut;
HANDLE hIn;
void ClearScreen(void);
void DispMousePos(COORD pos); // 在最后一行顯示鼠標(biāo)位置
void main()
{
hOut = GetStdHandle(STD_OUTPUT_HANDLE); // 獲取標(biāo)準(zhǔn)輸出設(shè)備句柄
hIn = GetStdHandle(STD_INPUT_HANDLE); // 獲取標(biāo)準(zhǔn)輸入設(shè)備句柄
WORD att = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY |
BACKGROUND_BLUE ;
// 背景是藍(lán)色,文本顏色是黃色
SetConsoleTextAttribute(hOut, att);
ClearScreen(); // 清屏
INPUT_RECORD mouseRec;
DWORD state = 0, res;
COORD pos = {0, 0};
for(;;) // 循環(huán)
{
ReadConsoleInput(hIn, &mouseRec, 1, &res);
if (mouseRec.EventType == MOUSE_EVENT){
if (mouseRec.Event.MouseEvent.dwEventFlags == DOUBLE_CLICK) break;
// 雙擊鼠標(biāo)退出循環(huán)
pos = mouseRec.Event.MouseEvent.dwMousePosition;
DispMousePos(pos);
if (mouseRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED)
FillConsoleOutputCharacter(hOut, 'A', 1, pos, NULL);
}
}
pos.X = 0; pos.Y = 0;
SetConsoleCursorPosition(hOut, pos); // 設(shè)置光標(biāo)位置
CloseHandle(hOut); // 關(guān)閉標(biāo)準(zhǔn)輸出設(shè)備句柄
CloseHandle(hIn); // 關(guān)閉標(biāo)準(zhǔn)輸入設(shè)備句柄
}
void DispMousePos(COORD pos) // 在最后一行顯示鼠標(biāo)位置
{
CONSOLE_SCREEN_BUFFER_INFO bInfo;
GetConsoleScreenBufferInfo( hOut, &bInfo );
COORD home = {0, bInfo.dwSize.Y-1};
WORD att0 = BACKGROUND_INTENSITY ;
FillConsoleOutputAttribute(hOut, att0, bInfo.dwSize.X, home, NULL);
FillConsoleOutputCharacter(hOut, ' ', bInfo.dwSize.X, home, NULL);
char s[20];
sprintf(s,"X = %2lu, Y = %2lu",pos.X, pos.Y);
SetConsoleTextAttribute(hOut, att0);
SetConsoleCursorPosition(hOut, home);
WriteConsole(hOut, s, strlen(s), NULL, NULL);
SetConsoleTextAttribute(hOut, bInfo.wAttributes); // 恢復(fù)原來的屬性
SetConsoleCursorPosition(hOut, bInfo.dwCursorPosition); // 恢復(fù)原來的光標(biāo)位置
}
void ClearScreen(void)
{
CONSOLE_SCREEN_BUFFER_INFO bInfo;
GetConsoleScreenBufferInfo( hOut, &bInfo );
COORD home = {0, 0};
unsigned long size = bInfo.dwSize.X * bInfo.dwSize.Y;
FillConsoleOutputAttribute(hOut, bInfo.wAttributes, size, home, NULL);
FillConsoleOutputCharacter(hOut, ' ', size, home, NULL);
}
總結(jié)
以上是生活随笔為你收集整理的linux控制台界面编程,控制台窗口界面的编程控制(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓盒子运行 linux,全志 Allw
- 下一篇: linux系统安装tv软件下载,达龙云电