CodeBlock下的人机交互界面设计

上传人:无*** 文档编号:61830689 上传时间:2022-03-12 格式:DOC 页数:19 大小:318.50KB
收藏 版权申诉 举报 下载
CodeBlock下的人机交互界面设计_第1页
第1页 / 共19页
CodeBlock下的人机交互界面设计_第2页
第2页 / 共19页
CodeBlock下的人机交互界面设计_第3页
第3页 / 共19页
资源描述:

《CodeBlock下的人机交互界面设计》由会员分享,可在线阅读,更多相关《CodeBlock下的人机交互界面设计(19页珍藏版)》请在装配图网上搜索。

1、附录6控制台函数用法说明课程设计还应该参考附录4和附录5附录4例子程序中用到的dorm.h头文件内容附录5编程规范头文件wincon.h中给出了控制台函数的原型声明及相关类型声明。这里对课程设计中例子程序 所用到数据类型和函数的用法进行了说明。1. 相关数据类型(1) 字符信息结构类型 CHAR_INFO及其结构指针类型 PCHAR_INFOtypedef struct _CHAR_INFO union WCHAR Un icodeChar;CHAR AsciiChar; Char;WORD Attributes; CHAR_INFO, *PCHAR_INFO;包括两个成员。成员 Char存放

2、字符的 ASCII码值或Unicode码值,成员 Attributes存放字符的 颜色属性(前景色和背景色)。成员类型 WCHAR是宽字符类型,是 unsigned short类型的别名;CHAR是char类型的别名; WORD是unsigned short类型的另一个别名。(2) 矩形结构类型SMALL_RECT及其结构指针类型 PSMALL_RECTtypedef struct _SMALL_RECT SHORT Left;SHORT Top;SHORT Right;SHORT Bottom; SMALL_RECT, *PSMALL_RECT;包括四个成员Left、Top、Right和Bo

3、ttom,分别表示矩形区域左上角和右下角在屏幕上的坐标。成员类型SHORT是short类型的别名。(3) 控制台光标信息结构类型 CONSOLE_CURSOR_INFO 及其结构指针类型 PCONSOLE_CURSOR_INFOtypedef struct _CONSOLE_CURSOR_INFO DWORD dwSize;BOOL bVisible; CONSOLE_CURSOR_INFO,*PCONSOLE_CURSOR_INFO;包括两个成员dwSize和bVisible。成员dwSize的值表示光标的大小,取值范围为1-100 ;当为1时,光标最小,仅是一条最靠下的水平细线;当为 10

4、0时,光标最大,为一个字符大小的 方块。成员bVisible表明光标是否可见,取值为 TRUE或FALSE。此结构体中的 DWORD是unsigned long类型的别名。(4) 坐标结构类型COORD及其结构指针类型 PCOORDtypedef struct _COORD SHORT X;SHORT Y; COORD, *PCOORD;包括两个成员X和Y,分别表示横坐标(列数)和纵坐标(行数)。此结构类型数据除了可表示屏幕上的坐标外,还可用来表示矩形区域的大小,即宽度(X)和高度(Y)。(5) 控制台屏幕缓冲区信息结构类型CONSOLE_SCREEN_BUFFER_INFO 及其结构指针类型

5、PCONSOLE_SCREEN_BUFFER_INFOtypedef struct _cOnSOLE_SCREEN_BUFFER_INFO COORD dwSize;COORD dwCursorPosition;WORD wAttributes;SMALL_RECT srWin dow;COORD dwMaximumWindowSize; CONSOLE_SCREEN_BUFFER_INFO,*PCONSOLE_SCREEN_BUFFER_INFO;成员dwSize表示屏幕区域的大小,即宽度和高度;成员dwCursorPosition表示屏幕中光标的位置;成员 wAttributes表示当前字

6、符的颜色属性;srWindow表示当前窗口显示的大小和位置;dwMaximumWindowSize表示最大的窗口缓冲区大小。(6)按键事件记录结构类型 KEY_EVENT_RECORDtypedef struct _KEY_EVENT_RECORD BOOL bKeyDow n;WORD wRepeatCou nt;WORD wVirtualKeyCode;WORD wVirtualSca nCode;union WCHAR Un icodeChar;CHAR AsciiChar; uChar;DWORD dwC on trolKeyState; KEY_EVENT_RECORD;6个成员分别

7、表示按键时的相关状态和信息。成员bKeyDown类型为BOOL,取值TRUE表示键按下,FALSE表示键释放;成员 wRepeatCount表示按键次数;成员 wVirtualKeyCode表示虚拟键 代码;成员wVirtualScanCode表示虚拟扫描码; 成员uChar表示按键对应字符的 ASCII码或Unicode 码,如果按下非字符键,码值为0 ;成员dwC on trolKeyState表示控制键状态,它可以是 CAPSLOCK_ON(大写锁定灯亮)、ENHANCED_KEY(按下扩展键)、LEFT_ALT_PRESSED(按下左 ALT 键)、LEFT_CTRL_PRESSED(

8、按下左 CTRL 键)、NUMLOCK_ON (数字键锁定灯亮)、 RIGHT_ALT_PRESSED(按下右 ALT 键)、RIGHT_CTRL_PRESSED(按下右 CTRL 键)、 SCROLLLOCK_ON(屏幕滚动锁定灯亮)和SHIFT_PRESSED(按下SHIFT键)中的一个或多个值的组 合。(7)鼠标事件记录结构类型 MOUSE_EVENT_RECORDtypedef struct _MOUSE_EVENT_RECORD COORD dwMousePositi on;DWORD dwButto nState;DWORD dwC on trolKeyState; DWORD d

9、wEve ntFlags; MOUSE_EVENT_RECORD;4个成员分别表示操作鼠标时的相关状态和信息。成员dwMousePosition表示鼠标当前位置; 成员dwButt on State反映了用户按下鼠标按钮的情况,取值为以下符号常量:FROM_LEFT_1ST_BUTTON_PRESSED 值为 1,表示最左边按钮; RIGHTMOST_BUTTON_PRESSED 值为2,表示最右边按钮; FROM_LEFT_2ND_BUTTON_PRESSED 值为 4,表示左起第二个按钮; FROM_LEFT_3RD_BUTTON_PRESSED 值为8,表示左起第三个按钮; FROM_L

10、EFT_4TH_BUTTON_PRESSED 值为16,表示左起第四个按钮当同时按下多个按钮时,dwButt on State的值为各个按钮对应符号常量进行按位或运算的结果,等同 于它们的算术和;成员dwEventFlags 表示鼠标的事件,女口 DOUBLE_CLICK( 双击)、 MOUSE_MOVED(移动)和 MOUSE_WHEELED(滚轮滚动,只适用于 Windows 2000/XP);成员dwControlKeyState的含义同于上面介绍的按键事件记录结构中同名成员。(8)窗口缓冲区大小记录结构类型WINDOW_BUFFER_SIZE_RECORDtypedef struct

11、_WINDOW_BUFFER_SIZE_RECORD COORD dwSize; WINDOW_BUFFER_SIZE_RECORD;成员dwSize表示窗口缓冲区的宽度和高度。(9) 菜单事件记录结构类型 MENU_EVENT_RECORD 及其结构指针类型 PMENU_EVENT_RECORDtypedef struct _MENU_EVENT_RECORD UINT dwComma ndld; MENU_EVENT_RECORD,*PMENU_EVENT_RECORD;成员dwCommandld表示菜单项对应的命令标志,其类型UNIT是unsigned int的别名。(10) 焦点事件记

12、录结构类型FOCUS_EVENT_RECORDtypedef struct _FOCUS_EVENT_RECORD BOOL bSetFocus; FOCUS_EVENT_RECORD;成员bSetFocus表示是否设置焦点。菜单事件和焦点事件由系统保留使用。(11) 输入记录结构类型INPUT_RECORD及其结构指针类型 PINPUT_RECORDtypedef struct _INPUT_RECORD WORD Even tType;union KEY_EVENT_RECORD KeyEve nt;MOUSE_EVENT_RECORD MouseEve nt;WINDOW_BUFFER_

13、SIZE_RECORD Win dowBufferSizeEve nt; MENU_EVENT_RECORD Men uEve nt;FOCUS_EVENT_RECORD FocusEve nt; Eve nt; INPUT_RECORD, *PINPUT_RECORD;成员EventType表明输入产生于何种类型事件,取值为以下符号常量:KEY_EVENT 值为1,代表按键事件;MOUSE_EVENT 值为2,代表鼠标事件;WINDOW_BUFFER_SIZE_EVENT 值为4,代表改变窗口缓冲区大小事件;MENU_EVENT 值为8,代表菜单事件;FOCUS_EVENT值为16,代表焦点

14、事件。成员Eve nt是枚举类型,其成员存放相应事件的记录内容。2. 相关库函数用法(按函数名称排序)(1) 关闭句柄CloseHa ndle功能:关闭一个内核对象。函数原型:BOOL WINAPI CloseHa ndle(HANDLE hObject);参数说明:hObject输入代表一个已打开对象的句柄。返回值:如果函数调用成功,返回值为非0。如果函数调用失败,返回值为0。备注:若在线程执行完之后,没有调用CloseHa ndle,在进程执行期间,将会造成内核对象的泄露,相当于句柄泄露,但不同于内存泄露,这势必会对系统的效率带来一定程度上的负面影响。但当进程 结束退出后,系统会自动清理这

15、些资源。(2) 创建控制台屏幕缓冲区CreateC on soleScree nBufer 功能:创建控制台屏幕缓冲区。函数原型:HANDLE WINAPI CreateCo nsoleScree nBuffer(DWORD dwDesiredAccess,DWORD dwShareMode,const SECURITY_A TTRIBUTES *lpSecurityAttributes,DWORD dwFlags,LPVOID lpScree nBufferData);参数说明:dwDesiredAccesq 输入控制台屏幕缓冲区的可访问权限。访问权限包括:GENERIC_READ(0x80

16、000000)和 GENERIC_WRITE(0x40000000) 。 GENERIC_READ表示允许程序从控制台屏幕缓冲区中读取数据; GENERIC_WRITE表示允许程序向屏幕缓冲区写数据。dwShareMode输入参数值取0表示表示缓冲区不可共享,或者取一到多个下列值。FILE_SHARE_READ0x00000001FILE_SHARE_WRITE0x00000002取值含义其他开放操作可以在控制台屏幕缓冲区上完成读访问操作。其他开放操作可以在控制台屏幕缓冲区上完成写访问操作。lpSecurityAttributes 输入,可选SECURITY_A TTRIBUTES 结构指针,

17、确定返回的句柄能否被子进程继承。如果 lpSecurityAttributes为NULL,则表示句柄不能继承。dwFlags输入所创建控制台屏幕缓冲区的类型。唯一支持的屏幕缓冲区类型为CONSOLE_TEXTMODE_BUFFER 。 lpScreenBuferData 保留 保留,值必须设为 NULL。返回值:如果函数调用成功,返回值为新控制台屏幕缓冲区的句柄。如果函数调用失败,返回值为INVALID_HANDLE_V ALUE。备注:一个控制台可拥有多个屏幕缓冲区,但只有一个活动屏幕缓冲区。非活动屏幕缓冲区可进行读 和写访问,但只有活动屏幕缓冲区可显示。将新的屏幕缓冲区设为活动屏幕缓冲区,

18、使用函数SetConsoleActiveScreenBufer 。调用进程可在任何需要控制台屏幕缓冲区句柄的函数中使用本函数返回的句柄,并受参数dwDesiredAccess所指定访问权限的限制。关闭控制台屏幕缓冲区句柄,使用函数CloseHa ndle。(3) 填充字符属性FillCo nsoleOutputAttribute功能:从屏幕缓冲区中指定的坐标位置开始,为指定数量的字符单元设置字符属性。函数原型:BOOL WINAPI FillCo nsoleOutputAttribute(HANDLE hCo nsoleOutput, WORD wAttribute, DWORD nLen g

19、th, COORD dwWriteCoord, LPDWORD IpNumberOfAttrsWritte n);参数说明:hConsoleOutput输入控制台屏幕缓冲区句柄。该句柄必须拥有GENERIC_WRITE访问权限。wAttribute 输入写到控制台屏幕缓冲区的属性。nLen gth输入将被设置成指定颜色属性的字符单元数目。dwWriteCoord 输入一个坐标值,用来指定被设置属性的单元中第一个字符的坐标。IpNumberOfAttrsWritten 输出指向变量的指针,变量用来存放被设置属性字符单元的实际数目。返回值:如果函数调用成功,返回值为非0。如果函数调用失败,返回值为

20、0。备注:如果被设置属性的字符单元数目超出控制台屏幕缓冲区指定行的末端,那么将会设置下一行字 符单元的属性。如果字符单元数目超出控制台屏幕缓冲区的末端,那么在末端以前的字符单元属性 给设置。输出到这些位置上的字符值不会改变。(4) 填充指定数据的字符FillC on soleOutputCharacter功能: 从控制台屏幕缓冲区指定坐标开始,将一个字符输出指定次数。函数原型:BOOL WINAPI FillCo nsoleOutputCharacter(HANDLE hCo nsoleOutput, TCHAR cCharacter, DWORD nLen gth, COORD dwWrit

21、eCoord, LPDWORD IpNumberOfCharsWritte n);参数说明:hConsoleOutput输入控制台屏幕缓冲区句柄。该句柄必须拥有GENERIC_WRITE访问权限。cCharacter输入输出到控制台屏幕缓冲区的字符。nLen gth输入字符应被输出到字符单元的数目。dwWriteCoord 输入一个坐标值,用来指定字符输出到的第一个单元字符坐标。IpNumberOfCharsWritten 输出指向变量的指针,变量用来存放实际输出到控制台屏幕缓冲区的字符数目。返回值:如果函数调用成功,返回值为非 0。如果函数调用失败,返回值为0。备注:如果输出字符的数目超出控

22、制台屏幕缓冲区指定行的末端,字符将被输出到下一行。如果字符 数目超出控制台屏幕缓冲区的末端,字符输出到控制台屏幕缓冲区末端为止。(5) 获取光标信息GetC on soleCursorI nfo功能:获取指定控制台屏幕缓冲区中光标的相关信息,包括光标的大小和可见性。函数原型:BOOL WINAPI GetCo nsoleCursorl nfo(HANDLE hCo nsoleOutput,PCONSOLE_CURSOR_INFO lpCo nsoleCursorl nfo);参数说明:hConsoleOutput输入控制台屏幕缓冲区句柄。该句柄必须拥有GENERIC_READ访问权限。lpCo

23、nsoleCursorlnfo 输出CONSOLE_CURSOR_INFO结构指针,用来存放控制台光标的相关信息。返回值:如果函数调用成功,返回值为非 0。如果函数调用失败,返回值为0。(6) 函数 GetConsoleScreenBufferlnfo功能:获取指定的控制台屏幕缓冲区信息函数原型:BOOL WINAPI GetCo nsoleScree nBufferl nfo(HANDLE hCo nsoleOutput, PCONSOLE_SCREEN_BUFFER_INFO lpCo nsoleScree nBufferl nfo);参数说明:hConsoleOutput 输入该控制台屏

24、幕缓冲区句柄,此句柄必须具有GENERIC_READ访问权限。IpConsoleScreenBufferlnfo 输出指向CONSOLE_SCREEN_BUFFER_INFO结构的指针,用来存放控制台屏幕缓冲区信息。返回值:如果函数调用成功,返回值为非零。如果函数调用失败,返回值为零。备注:修改在CONSOLE_SCREEN_BUFFER_INFO 结构的成员srWindow中返回的矩形区,然后将其 传递给函数SetConsoleWindowlnfo,可在窗口中滚动该控制台屏幕缓冲区,和改变窗口的大小。在CONSOLE_SCREEN_BUFFER_INFO 结构中返回的所有坐标都是字符单元坐标

25、,其中原点(0,0)位于控制台屏幕缓冲区的左上角。(7) 获取控制台标题GetCo nsoleTitle功能: 获取当前控制台窗口的标题。函数原型:DWORD WINAPI GetCo nsoleTitle(LPTSTR lpCo nsoleTitle,DWORD n Size);参数说明:lpConsoleTitle输出指向接收标题字符串的缓冲区指针。缓冲区大小要求小于64K。如果缓冲区太小而无法存下整个标题,函数将存满缓冲区为止,最后用空字符作为字符串结束标志。nSize输入参数lpConsoleTitle所指向缓冲区的大小,即所能容纳字符的个数。返回值:如果函数调用成功,返回值是控制台窗

26、口标题的长度。如果函数调用失败,返回值为0备注:设置控制台窗口标题,用函数SetCo nsoleTitle 。获取原标题字符串,用函数GetConsoleOriginalTitle 。本函数要么使用 Unicode字符要么使用8位字符,这取决于控制台当前所采用的代码页。控制 台代码页默认值为系统的 OEM代码页。(8) 获取标准句柄GetStdHa ndle功能:获取指定标准设备(标准输入、标准输出、标准出错)的句柄。函数原型:HANDLE WINAPI GetStdHa ndle(DWORD n StdHa ndle);参数说明:nStdHandle输入代表标准设备,可取以下值之一:取值含义

27、STD_INPUT_HANDLE (DWORD)-10 STD_OUTPUT_HANDLE (DWORD)-11 STD_ERROR_HANDLE (DWORD)-12标准输入设备,初始为控制台输入缓冲区CONIN$标准输出设备,初始为激活的控制台屏幕缓冲区CONOUT$标准出错设备,初始为激活的控制台屏幕缓冲区CONOUT$返回值:如果函数调用成功,返回值为指定设备的句柄,或为调用函数SetStdHandle后设置的重定向句柄。该句柄具有 GENERIC_READ 和 GENERIC_WRITE 访问权限,除非应用程序使用函数 SetStdHandle设置了具有较小访问权的标准句柄。如果函数

28、调用失败,返回值为INVALID_HANDLE_V ALUE (常量值为-1 )。如果应用程序没有关联的标准句柄(比如运行在交互式桌面的服务程序),并且没有将标准句柄重新定向,返回值为 NULL。备注:句柄”是 Windows最常用的概念。它通常用来标识Windows资源(如菜单、图标、窗口等)和设备等对象。虽然可以把句柄理解为一个指针变量类型,但它不是对象所在的地址,而是对象在 Windows系统内部表的索引值。应用程序需要从控制台读数据或向控制台写数据时,可以使用函数GetStdHandle返回的句柄。控制台在创建时,标准输入句柄是控制台的输入缓冲区句柄,而标准输出句柄和标准出错句柄是控

29、制台的激活屏幕缓冲区句柄。这些句柄可以被任何一个控制台操作函数用来访问控制台输入缓冲区 或屏幕缓冲区。后面将陆续介绍与人机交互界面设计有关的控制台操作函数。进程的标准句柄可用函数SetStdHandle重新定向,这种情况下,函数GetStdHandle返回的是重定向后的句柄。(9)读取控制台输入信息ReadC on sole In put功能:从控制台输入缓冲区读取数据,并将数据从缓冲区移除。函数原型:BOOL WINAPI ReadCo nsolel nput(HANDLE hCo nsolel nput,PINPUT_RECORD lpBuffer,DWORD nLen gth, LPDW

30、ORD IpNumberOfEve ntsRead);参数说明:hCo nsolel nput输入控制台输入缓冲区句柄。句柄必须拥有GENERIC_READ访问权限。lpBuffer 输出指向INPUT_RECORD结构数组的指针,用来存放读取的输入缓冲区数据。数组整体大小要小 于 64K。nLen gth输入参数lpBuffer所指数组的大小,以数组元素为单位。IpNumberOfEve ntsRead 输出指向变量的指针,变量用来存放读取输入记录的数目。返回值:如果函数调用成功,返回值为非0。如果函数调用失败,返回值为 0。备注:如果参数nLength的值大于缓冲区中可读取记录的数目,则实

31、际读取的记录数目为可读记录数 目。输入缓冲区输入记录为空时,函数处于等待状态,直到至少读到一条输入记录才会返回。获取控制台输入缓冲区中未读输入记录数目,使用函数GetNumOfConsolelnputEvents。从控制台输入缓冲区读取输入记录但不移除,使用函数PeekCo nsole In put。清除控制台输入缓冲区中所有未读记录,使用函数 FlushConsoleInputBuffer。(10) 滚动控制台屏幕缓冲区ScrollC on soleScree nBuffer功能:移动屏幕缓冲区中的数据块。移动效果可以限制在一块指定的剪切矩形区域,因而在剪切矩形 区域之外的屏幕缓冲区内容不会

32、变化。函数原型:BOOL WINAPI ScrollCo nsoleScree nBuffer(HANDLE hCo nsoleOutput,const SMALL_RECT *lpScrollRecta ngle,const SMALL_RECT *lpClipRecta ngle,COORD dwDest in atio nOrigi n, const CHAR_INFO *lpFill);参数说明:hConsoleOutput输入控制台屏幕缓冲区句柄。该句柄必须拥有GENERIC_READ访问权限。lpScrollRectangle 输入矩形结构指针,所指向矩形结构的成员指定了将被移动的

33、屏幕缓冲区矩形区域左上角和右下角 的坐标。lpClipRectangle 输入,可选矩形结构指针,所指向矩形结构的成员指定了将受影响的屏幕缓冲区矩形区域左上角和右下角 的坐标。指针值可为NULL。dwDestinationOrigin 输入指定lpClipRectangle内容移到新位置的左上角坐标,以字符为单位。lpFill 输入字符信息结构指针,指定用于填充因移动而产生空白区的字符和颜色属性。返回值:如果函数调用成功,则返回非零值。如果函数调用失败,则返回0。(11) 设置活动屏幕缓冲区SetC on soleActiveScree nBuffer功能:将指定的屏幕缓冲区设为当前被显示的控

34、制台屏幕缓冲区。函数原型:BOOL WINAPI SetCo nsoleActiveScree nBuffer(HANDLE hCo nsoleOutput);参数说明:hConsoleOutput输入控制台屏幕缓冲区句柄。返回值:如果函数调用成功,返回值为非0。如果函数调用失败,返回值为0。备注:一个控制台可以拥有多个屏幕缓冲区。函数SetConsoleActiveScreenBufer设定哪个可被显示。可以向非活动屏幕缓冲区输出数据,然后用SetConsoleActiveScreenBufer来显示该缓冲区的内容。(12) 设置光标信息SetC on soleCursorI nfo功能:设

35、置指定控制台屏幕缓冲区光标的大小和可见性。函数原型:BOOL WINAPI SetCo nsoleCursorl nfo( HANDLE hCo nsoleOutput, co nst CONSOLE_CURSOR_INFO *lpCo nsoleCursorl nfo); - -参数说明:hConsoleOutput输入控制台屏幕缓冲区句柄。该句柄必须拥有GENERIC_WRITE访问权限。lpConsoleCursorlnfo 输入CONSOLE_CURSOR_INFO结构指针,其中数据用于设置控制台屏幕缓冲区光标属性。返回值:如果函数调用成功,返回值为非0。如果函数调用失败,返回值为0。

36、备注:当屏幕缓冲区光标可见时,其外观可以改变,变化范围从完全充满一个字符单元到显示在字符 单元底部的一条水平线。CONSOLE_CURSOR_INFO结构的成员dwSize指定光标占字符单元空间的 百分比,小于1或大于100时,函数调用失败。(13) 设置控制台光标位置SetC on soleCursorPositi on功能:设置指定的控制台屏幕缓冲区中光标位置。函数原型:BOOL WINAPI SetCo nsoleCursorPositio n( HANDLE hCo nsoleOutput, COORD dwCursorPositi on);参数说明:hConsoleOutput输入控

37、制台屏幕缓冲区的句柄。句柄必须拥有 GENERIC_READ访问权限。dwCursorPosition 输入用来指定光标新位置的坐标值。坐标值必须在控制台屏幕缓冲区范围内。返回值:如果函数调用成功,返回值为非零。如果函数调用失败,返回值为零。备注:光标位置决定高级I/O函数输出或回显字符在屏幕上显示的位置。获取光标当前位置,使用函 数 GetConsoleScreenBuferlnfo。(14) 设置代码页SetCo nsoleOutputCP功能:设置与调用进程相关联的控制台所使用的输出代码页。控制台用输出代码页将各种函数输出的 字符值映射到控制台窗口中显示的图像。函数原型:BOOL WIN

38、API SetCo nsoleOutputCP(UINT wCodePageID);参数说明:wCodePagelD输入将要设置的代码页标识码值。返回值:函数调用成功,返回值为非 0。函数调用失败,返回值为 0。备注:代码页将256个字符编码映射到各个单独字符。不同的代码页包括不同的特殊字符,这些字符 专门为某种语言或某种语言群所定制。查看操作系统安装或支持的代码页,使用函数EnumSystemCodePages。本地计算机可用的代码页标识码值存放在注册表以下键值:HKEY_LOCAL_MACHINESYSTEMCurre ntC on trolSetC on trolNlsCodePage但

39、是,用函数EnumSystemCodePages列出代码页更好些, 这是因为在不同版本的 Windows系统 中注册表可能不一样。判断某特殊代码页是否有效,使用函数IsValidCodePage。获取包括名称在内的更多关于代码页的信息,使用函数GetCPInfoEx。可用代码页标识码值表如下:代码页(Code page)说明1258越南文1257波罗的海文1256阿拉伯文1255希伯来文1254土耳其语1253希腊文1252拉丁文(ANSI)1251斯拉夫文1250中欧文950繁体中文949韩文12936932874850437获取控制台当前的输出代码页,使用函数GetC on soleOut

40、putCP。设置和查看控制台的输入代码页,使用函数 SetConsoleCP 和 GetConsoleCP。(15) 设置控制台屏幕缓冲区大小SetC on soleScree nBufferSize功能:改变指定控制台屏幕缓冲区的大小。函数原型:BOOL WINAPI SetCo nsoleScree nBufferSize(HANDLE hCo nsoleOutput,COORD dwSize);参数说明:hConsoleOutput输入该控制台屏幕缓冲区句柄。此句柄必须具有GENERIC_READ访问权限。dwSize输入该控制台屏幕缓冲区的新大小,以字符行数和列数为单位。所指定的宽度和

41、高度不能小于控制 台屏幕缓冲区窗口的宽度和高度。返回值:如果函数调用成功,返回值为非零。如果函数调用失败,返回值为0。(16) 设置控制台文本属性SetCo nsoleTextAttribute功能:设置由函数WriteConsole输出或由函数 ReadConsole回显到屏幕缓冲区字符的属性。函数对函 数调用后输出的文本产生影响。函数原型:BOOL WINAPI SetCo nsoleTextAttribute(HANDLE hCo nsoleOutput,WORD wAttributes);参数说明:hConsoleOutput输入控制台屏幕缓冲区句柄。该句柄必须拥有GENERIC_RE

42、AD访问权限。wAttributes 输入字符属性。返回值:如果函数调用成功,返回值为非零。如果函数调用失败,返回值为0。备注:获取屏幕缓冲区当前颜色属性,调用函数GetConsoleScreenBuferlnfo。(17) 设置控制台标题SetCo nsoleTitle功能:设置当前控制台窗口标题。函数原型:BOOL WINAPI SetCo nsoleTitle( LPCTSTR lpCo nsoleTitle);参数说明:lpC on soleTitle 输入将被显示在控制台窗口标题栏的字符串,大小必须小于64K。返回值:如果函数调用成功,返回值为非零。如果函数调用失败,返回值为零。备注

43、:程序结束时,系统恢复原控制台标题。(18) 设置控制台窗口位置和大小SetCo nsoleWi ndowl nfo功能:设置控制台屏幕缓冲区窗口当前的大小和位置。函数原型:BOOL WINAPI SetCo nsoleWi ndowl nfo(HANDLE hCo nsoleOutput, BOOL bAbsolute, co nst SMALL_RECT *lpCo nsoleWi ndow); _参数说明:hConsoleOutput输入控制台屏幕缓冲区句柄。该句柄必须拥有GENERIC_READ访问权限。bAbsolute输入如果此参数值为 TRUE,则第三个参数指定的是窗口左上角和右

44、下角在控制台屏幕缓冲区中的 绝对坐标;如果此参数值为 FALSE,则第三个参数指定的是窗口左上角和右下角以它们当前位置为 参考的相对坐标。lpConsoleWindow输入矩形结构指针,所指向的矩形结构类型数据用于指定窗口左上角和右下角的新位置。返回值:如果函数调用成功,则返回非零值。如果函数调用失败,返回零。备注:如果指定的窗口矩形区域超出了控制台屏幕缓冲区的边界,则函数调用失败。即窗口矩形区域15的Top和Left不得小于0,而Bottom和Right不得大于(屏幕缓冲区高度-1)和(屏幕缓冲区宽度-1)。 如果 Right=left或Bottom=Top,函数也将调用失败。在控制台拥有多

45、个屏幕缓冲区时,改变其中一个屏幕缓冲区中的窗口位置不会影响到窗口在其 他屏幕缓冲区中的位置。获取屏幕缓冲区窗口当前的大小和位置,使用函数GetConsoleScreenBufferlnfo 。(19) 写控制台WriteCo nsole功能:从当前光标位置开始向控制台屏幕缓冲区输出字符串。函数原型:BOOL WINAPI WriteCo nsole(HANDLE hCo nsoleOutput,const VOID *lpBuffer,DWORD nNu mberOfCharsToWrite,LPDWORD IpNumberOfCharsWritte n,LPVOID lpReserved);

46、参数说明:hConsoleOutput输入控制台屏幕缓冲区句柄。该句柄必须拥有GENERIC_WRITE访问权限。lpBuffer 输入指向缓冲区的指针, 缓冲区中包含了将被输出到控制台屏幕缓冲区的字符。大小必须小于64K。nNu mberOfCharsToWrite 输入将被输出的字符数。如果大小超过64KB,函数将因 ERROR_NOT_ENOUGH_MEMORY 而调用失败。IpNumberOfCharsWritten 输出指向变量的指针,变量用来存放实际输出的字符数。lpReserved保留;必须为NULL。返回值:如果函数调用成功,返回值为非0。如果函数调用失败,返回值为0。备注:函

47、数WriteConsole在当前光标位置向控制台屏幕缓冲区输出字符。光标位置随字符输出而移动。函数SetConsoleCursorPosition可设置当前光标位置。(20) 向指定区域写带属性的字符WriteCo nsoleOutput功能:在控制台屏幕缓冲区指定的矩形字符单元块上输出带颜色属性的字符信息。输出数据来自于源 缓冲区指定位置上相应大小的矩形字符单元块。函数原型:BOOL WINAPI WriteC on soleOutput(HANDLE hCo nsoleOutput,const CHAR_INFO *lpBuffer,COORD dwBufferSize,COORD dwB

48、ufferCoord,PSMALL_RECT IpWriteRegion);参数说明:hConsoleOutput输入控制台屏幕缓冲区句柄。该句柄必须拥有GENERIC_WRITE访问权限。IpBuffer 输入用于存放将被输出到控制台屏幕缓冲区的数据。该指针所指向的内存缓冲区可看作一个二维 CHAR_INFO类型结构数组,数组的大小由参数dwBufferSize指定。数组整体字节数必须小于64K。dwBufferSize输入参数IpBuffer所指向的数据缓冲区大小,以字符单元为单位。该COORD类型数据的X成员表示列数,Y成员表示行数。dwBufferCoord 输入所要输出的数据在由参数

49、lpBuffer所指向数据缓冲区中的位置。一般初值为0,0,表示从数据缓冲区的第一个单元开始输出。IpWriteRegion输入,输出SMALL_RECT类型的指针。作为输入参数,所指结构成员指定数据输出的控制台屏幕缓冲区矩 形区域左上角和右下角的坐标。作为输出参数,所指结构成员指定数据输出的实际矩形区域。返回值:如果函数调用成功,返回值为非0。如果函数调用失败,返回值为0。备注:函数WriteConsoleOutput把源数据缓冲区和目的屏幕缓冲区当作二维数组(字符单元的列和行)。参数IpWriteRegion所指向的矩形区域指定将被输出到控制台屏幕缓冲区的数据块大小和位置,是数 据输出的目

50、的矩形区。将一个与目的矩形区大小相同的矩形区以参数dwBufferCoord为左上角放置在IpBuffer数组矩形区域上,与 IpBuffer数组矩形区域重叠部分的单元数据将被输出到目的矩形区。目的矩形区中未被输出数据覆盖的单元不受影响。换言之,这些单元没有那么多输出数据来覆 盖。函数 WriteConsoleOutput返回前,设置IpWriteRegion成员值,用来表示受输出操作影响的实际 屏幕缓冲区矩形区域。函数 WriteConsoleOutput不改变光标位置。(21) 在指定位置处写属性WriteCo nsoleOutputAttribute功能:从指定位置开始,向控制台屏幕缓冲

51、区中连续单元复制一些字符属性。函数原型:BOOL WINAPI WriteCo nsoleOutputAttribute(HANDLE hCo nsoleOutput,const WORD *IpAttribute,DWORD nLen gth,COORD dwWriteCoord,LPDWORD IpNumberOfAttrsWritte n);参数说明:hConsoleOutput输入控制台屏幕缓冲区句柄。该句柄必须拥有GENERIC_WRITE访问权限。IpAttribute 输入存放那些写到控制台屏幕缓冲区的属性值的地址。nLen gth输入屏幕缓冲区属性将被复制的字符单元数目。总长必

52、须小于64K。dwWriteCoord 输入一个坐标值,用来指定属性被复制的屏幕缓冲区第一个单元的字符坐标。IpNumberOfAttrsWritten 输出指向变量的指针,变量用来存放实际被复制到控制台屏幕缓冲区的属性数目。返回值:如果函数调用成功,返回值为非0。如果函数调用失败,返回值为0。备注:如果被输出的属性数目超出控制台屏幕缓冲区指定行的末端,属性值将被输出到下一行。如果 属性数目超出控制台屏幕缓冲区的末端,属性值将输出到屏幕缓冲区末端为止。这些位置上的字符值不会改变。(22) 在指定位置处插入指定数量的字符WriteCo nsoleOutputCharacter功能:从指定位置开始

53、,复制一些字符到控制台屏幕缓冲区的连续单元。函数原型:BOOL WINAPI WriteCo nsoleOutputCharacter(HANDLE hCo nsoleOutput,LPCTSTR lpCharacter,DWORD nLen gth,COORD dwWriteCoord, LPDWORD IpNumberOfCharsWritte n);参数说明:hConsoleOutput输入控制台屏幕缓冲区句柄。该句柄必须拥有GENERIC_WRITE访问权限。lpCharacter 输入将被输出到控制台屏幕缓冲区的字符地址。字符数目必须小于64K。nLen gth输入输出字符的数目。dwWriteCoord 输入一个坐标值,用来指定字符输出到控制台屏幕缓冲区第一个单元的字符坐标。IpNumberOfCharsWritten 输出指向变量的指针,变量用来存放实际被写出字符的数目。返回值:如果函数调用成功,返回值为非0。如果函数调用失败,返回值为0。备注:如果输出字符的数目超出控制台屏幕缓冲区指定行的末端,字符将被输出到下一行。如果字符 数目超出控制台屏幕缓冲区的末端,字符将输出直到屏幕缓冲区末端。19

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!