COLOr
Google SetConsoleTextAttribute.
Not WOrking!!
Why not working, have you not google
or this field here on board for searching?
http://masm32.com/board/index.php?topic=2980.msg31142#msg31142
Greets,
masm32rt not compatible with other library as kernel32.inc and mams32.inc .......
in my program used kernel32.inc library and masm32.inc .....
I used
http://masm32.com/board/index.php?topic=2980.msg31142#msg31142
of dedndav but not compatible with my program
Quote from: imadhx30 on March 20, 2014, 08:32:37 AM
masm32rt not compatible with other library as kernel32.inc and mams32.inc .......
in my program used kernel32.inc library and masm32.inc .....
They are not compatible because masm32rt.inc includes these other include files. See the example code below.
In case you don't already know, the console text attributes are the same format as for the old VGA 16-color alphanumeric modes with the default palette. In this format the foreground and background attributes are packed into a byte with the bit assignments as follows:
Bit7 background intensity
Bit6 background red component
Bit5 background green component
Bit4 background blue component
Bit3 foreground intensity
Bit2 foreground red component
Bit1 foreground green component
Bit0 foreground blue component
So instead of using Microsoft's clumsy defines, FOREGROUND_BLUE, FOREGROUND_GREEN, etc, you can simply specify the necessary bits as a number in the range 0-15.
This code defines a macro to specify the foreground and background attributes that, for the color assignments, works essentially like the BASIC language COLOR statement:
color MACRO foreground, background
mov eax, background
shl eax, 4
or eax, foreground
EXITM <eax>
ENDM
include \masm32\include\masm32rt.inc
.data
hStdout dd 0
.code
start:
invoke GetStdHandle,STD_OUTPUT_HANDLE
mov hStdout, eax
xor esi, esi
.WHILE esi < 16
xor edi, edi
.WHILE edi < 16
invoke SetConsoleTextAttribute, hStdout, color(esi,edi)
printf("X")
inc edi
.ENDW
printf("\n")
inc esi
.ENDW
; Restore the default attribute (white on black).
invoke SetConsoleTextAttribute, hStdout, color(7,0)
printf("\n\n")
inkey
exit
end start
Quote from: imadhx30 on March 20, 2014, 07:14:15 AM
Not WOrking!!
If Google is not WOrking, bad luck - you can still use MasmBasic ConsoleColor (http://www.webalice.it/jj2006/MasmBasicQuickReference.htm#Mb1120):
include \masm32\MasmBasic\MasmBasic.inc ; download (http://masm32.com/board/index.php?topic=94.0)
Init
ConsoleColor
Print "This is the standard color (white on black),", CrLf$, "but "
ConsoleColor cRed, cWhite
Print "this is red on white, while"
ConsoleColor cBlue, cGray
Print "this is blue", CrLf$,"on grey, and"
ConsoleColor
Inkey " this is back to white on black"
Exit
end start
Available colors (see also http://support.microsoft.com/kb/319883 (http://support.microsoft.com/kb/319883)):
cBlack, cWhite, cGray, cBlue, cGreen, cCyan, cRed, cMagenta, cYellow
cDarkGray, cDarkBlue, cDarkGreen, cDarkCyan, cDarkRed, cDarkMagenta, cDarkYellow
SetConsoleTextAttribute only changes the color for any text displayed after the color change
i thought i posted a routine that sets the colors and clears the screen
ok - maybe that's not what you want
but.....
the colors for future attributes is not the same as the colors in the buffer
It may also help if you included WINDOWS.INC FIRST as it is designed to be used.
how to change color black other color bachground my progrmme
without using masm32rt library
didn't we already cover that ?
http://masm32.com/board/index.php?topic=2992.msg31182#msg31182 (http://masm32.com/board/index.php?topic=2992.msg31182#msg31182)
already used my program but not change color
Please give another color function
i don't understand what the problem is
does the program i posted show up with yellow text and a blue background ?
if not, what colors does it show up with
are you using the windows console ?
or dos box or what
i need more information to help you
Quote from: dedndave on March 21, 2014, 08:57:12 AM
i don't understand what the problem is
Or what the problem is with using masm32rt.inc.