• Example: Writing Text Colors


    To demonstrate the use of colors and attributes, the WriteColors.asm program creates an array of characters and an array of attributes, one for each character. It calls WriteConsoleOutputAttribute to copy the attributes to the screen buffer and WriteConsoleOutputCharacter to copy the characters

    to the same screen buffer cells:

    TITLE Writing Text Colors (WriteColors.asm)
    INCLUDE Irvine32.inc
    .data
    outHandle HANDLE ?
    cellsWritten DWORD ?
    xyPos COORD <10,2>
    ; Array of character codes:
    buffer BYTE 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
    BYTE 16,17,18,19,20
    BufSize DWORD ($-buffer)
    ; Array of attributes:
    attributes WORD 0Fh,0Eh,0Dh,0Ch,0Bh,0Ah,9,8,7,6
    WORD 5,4,3,2,1,0F0h,0E0h,0D0h,0C0h,0B0h
    .code
    main PROC
    ; Get the Console standard output handle:
    INVOKE GetStdHandle,STD_OUTPUT_HANDLE
    mov outHandle,eax
    ; Set the colors of adjacent cells:
    INVOKE WriteConsoleOutputAttribute,
    outHandle, ADDR attributes,
    BufSize, xyPos, ADDR cellsWritten
    ; Write character codes 1 through 20:
    INVOKE WriteConsoleOutputCharacter,
    outHandle, ADDR buffer, BufSize,
    xyPos, ADDR cellsWritten
    INVOKE ExitProcess,0 ; end program
    main ENDP
    END main
    View Code

    Figure 11–3 shows a snapshot of the program’s output, in which character codes 1 through 20 are displayed as graphic characters. Each character is in a different color, although the printed page appears in grayscale.

  • 相关阅读:
    subString用法
    [转]Apache Commons工具集简介
    MyEclipse发布项目更改项目名
    ubuntu下设置文件权限
    mysql数据库中实现内连接、左连接、右连接
    hibernate中onetomany实例一
    hibernate中manytoone实例一
    FireFox中使用ExtJs日期控件错误的解决方法
    Ext.ux.form.SearchField使用方法
    mysql kill操作
  • 原文地址:https://www.cnblogs.com/dreamafar/p/5993473.html
Copyright © 2020-2023  润新知