• 17、Windows API 图形用户界面(1)


    一、基本概念

    Windows的用户界面分为两个部分:字符图形界面和图形用户界面。字符图形界面较为简单,主要内容包括如何在界面上读取用户输入,如何向界面终端输出信息。如何控制界面的字体、背景、颜色等。

    字符界面的人机交互接口只有一种,称作控制台( Console)。用户通过控制台向应用程序输入命令和数据,应用程序将运行结果或提示信息等显示在控制台上。如cmd.exe

    字符界面应用程序的所有输入和输出都是通过Console,字符界面相关的API函数都是通过Console的句柄来操作控制台的。

    Console句柄分为两种,标准输入(Stand In)句柄和标准输出(Stand Out)句柄,分别用于从界面上读取输入和向界面输出。

    大多数情况下,字符界面应用程序都只有一个控制台窗口,其标准输入句柄和标准输出句柄都代表了这个控制台。然而它们确实是两个句柄,所能进行的操作和权限是不一样的。如果使用“标准输入句柄”作为参数,调用WriteConsole等用于控制台输出的API函数是会产生错误的。

    1、字符单元(Cell)

        控制台的最小单元是字符单元。一个字符单元可以放置一个字符。字符单元是对控制台进行操作的最小单元。所有的属性修改操作也都是以字符单元为单位的。

        实际上,类似于printf等标准C函数在Windows系统中都是通过系统的动态链接库crtdll.dll导出,printf函数的实现也位于crtdll.dll中,分析printf等函数的实现代码可以发现,在Windows平台上,实际printf函数在做了格式化字符串的处理后,是调用WriteConsoleAPI函数进行界面操作的。

    2、控制台子系统

        Windows系统的应用程序分别运行于若干子系统。其中WindowsConsle是两个最常用到的子系统,图形用户界面的程序运行于Windows子系统,控制台界面的程序运行于Consle子系统。图形用户界面的应用程序窗口是由应用程序调用API函数创建的,而控制台应用程序的控制台界面并不需要应用程序创建,系统会为其自动创建。

    3、控制台读写

        使用Windows API向控制台写入数据获从控制台获取输入的过程如下:

    ◇使用GetStdHandle函数获取本应用程序的控制台标准输入、输出句柄(当然需要本应用程序是一个控制台程序,具有一个控制台。控制台程序在链接时需要选择子系统为CONSOLE,链接选项:/SUBSYSTEM:CONSOLE)。

    ◇以标准输出句柄为参数,调用WriteConsole API写入输出。

    ◇以标准输入句柄为参数,调用ReadConsole API读取输入。

    示例代码

    更多Consoles and Character-Mode Support,可以参见[1,2]

    [1] 精通Windows API 函数、接口、编程实例

    [2] http://msdn.microsoft.com/en-us/library/ms682010%28VS.85%29.aspx

  • 相关阅读:
    div+css与table布局
    自动刷新网页效果
    Spring框架之Filter应用,filter可以使用spring注入资源
    http://localhost:8080/hohode
    java jacob 操作word 文档,进行写操作,如生成表格,添加 图片(这个不错,可以拿来直接用,非常好)
    java 填充word中的表格
    360抢票
    easyui 时间段校验,开始时间小于结束时间,并且时间间隔不能超过30天
    java操作word示例
    FastStone Capture 注册码 序列号
  • 原文地址:https://www.cnblogs.com/mydomain/p/1931275.html
Copyright © 2020-2023  润新知