用VB建立字符界面的控制台程序

出处: 作者: 日期:2008年03月20日 14时19分

功能:从输入缓冲区输入字符串。

  说明:此函数是以块方式输入信息。在本文的示例中,只有用户按了Enter(回车)键后,此函数才返回。

  hConsoleInput—console window的input handle。
  lpBuffer—输入缓冲区地址。
  nNumberOfCharsToRead—输入缓冲区的长度。
  lpNumberOfCharsRead—实际读入的字符数,可置为vbNull。
  lpReserved—保留,必须置为vbNull。

Private Declare Function SetConsoleMode Lib "kernel32" (ByVal hConsoleHandle _
As Long, dwMode As Long) As Long

  功能:设置控制台输入缓冲区的输人模式或屏幕输出缓冲区的输出模式。

  说明:在用 ReadConsole和 WriteConsole函数行输入/输出前,要用此函数设置好输入/输出模式。

  hConsoleHandle—console window的Input handle或output handle。

  dwMode是要设置的输入或输出模式值。hConsoleHandle是Input handle时, dwMode可取如下值的组合:

Private Const ENABLE_LINE_INPUT = &H2
Private Const ENABLE_ECHO_INPUT = &H4
Private Const ENABLE_MOUSE_INPUT = &H10
Private Const ENABLE_PROCESSED_INPUT = &H1
Private Const ENABLE_WINDOW_INPUT = &H8

  当 hConsoleHandle 是 output handle 时,dwMode可取如下值的组合:

Private Const ENABLE_PROCESSED_OUTPUT = &H1
Private Const ENABLE_WRAP_AT_EOL_OUTPUT = &H2

  这些取值的具体意义,请参见 WINDOWS SDK 文档,此处不再详述。

  注意:VB的API浏览器对WriteConsole和ReadConsole两函数的声明是不对的。尽管lpBuffer为长指针,它仍然应为传值调用,这是由于VB和API对字符串的存储和处理方式不一致造成的。

  4.其他API函数

  有了l、2、3所述的API函数,就可以创建一个基本的控制台程序了。当然,我们还可以用如下的API函数再“修饰”一下呆板的控制台窗口。

Private Declare Function SetConsoleTitle_Lib "kernel32"Alias "SetConsoleTitleA" _
(ByVal lpConsoleTitle As String) As Long

  功能:设置控制台窗口的标题。

  说明:lpConsoeTitle—要设置的窗口标题(字符串)。

Private Declare Functon SetConsoleTextAttribute Lib "hernel32" _
(ByVal hConsoleOutput As Long, ByVal wAttributes As Long) As Long

  功能:设置要在控制台窗口输出的字符的前景色和背景色

  说明: hConsoleOutput—控制台窗口的output handle
     wAttributes—决定了console window的前景色和背景色,可以是如下数值的组合:

Private Const FOREGROUND_BLUE = &H1 ''前景:蓝
Private Const FOREGROUND_GREEN = &H2 ''前景:绿
Private Const FOREGROUND_RED = &H4 ''前恐;红
Private Const FOREGROUND_INTENSITY = &H8 ''前景:高亮度
Private Const BACKGROUND_BLUE = &H10 ''背景:蓝
Private Const BACKGROUND_GREEN = &H20 ''背景:绿
Private Const BACKGROUND_RED = &H40 ''背景:红
Private Const BACKGROUND_INTENSITY = &H80 ''背景:高亮度

  例如,要设置前景色为黄色,可定义如下的常量并将其赋值给 wAttributes。

Private Const FOREGROUND_YELLOW = FOREGROUND_RED Or FOREGROUND_GREEN

最后更新时间:2008-05-28 12:34:12
文章评论
共有 0 位网友发表了评论
用户名: 新注册) 密码: 匿名评论 [查看所有评论]

评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
您可以用以下几种方式找到此文章

考试全流程