Hi together,
I have some problems with drawing text onto the screen. For now I have created a complete DC including a backbuffer system and a running GameLoop with FPS limitation and the update routine to keep updating the content of the screen.
However I am stuck with the Text. At the moment I am using TextOut with Backgroundcolor as transparent and textcolor set to the right color using the RGB Macro. The problem is, that I want the text to disappear/change after some seconds and the way I am using it now results in a mess because the new text is written over the old text so you see both.
I tried to use a Rectangle and paint the text into it and I got the Rectangle and the text but I don't get the Rectangle transparent.
Another problem I have is that I can't seem to change the font style to write with. I want it to be bold and larger. I tried with CreateFontIndirect and the FONTLOG Declaration but for some reason it doesn't change the style.
I can't paste the source now since I am not at home but at a friends computer. I don't think that the source is needed for this.
I hope one of you can help me with this.
Stefan
Hi Stefan,
to change the font of the text using TextOut you first have to select the font to the dc like this:
-----------snip---------------
INVOKE CreateFont,25,15,0,0,200,0,0,0,OEM_CHARSET,\
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,\
DEFAULT_QUALITY,DEFAULT_PITCH or FF_SCRIPT,\
ADDR fontname
push eax
INVOKE GetWindowDC,hdlg
mov dlgdc,eax
pop eax
INVOKE SelectObject,dlgdc,eax
mov hfont,eax
RGB 255,255,255
invoke SetTextColor,dlgdc,eax
RGB 0,0,0
invoke SetBkColor,dlgdc,eax
invoke lstrlen,addr buttontext1
invoke TextOut,dlgdc,155,8,ADDR buttontext1,eax
invoke SelectObject,dlgdc, hfont
--------------snip-------------------
to 'delete' the text you can repaint your whole backbuffer dc with FillRect. If this isn't possible for you, why don't you overwrite the text with Rectangle API? just place the rectangle over the text...........
hope this helps.
byeHi SaFc0n,
strange to see this code snippet. I did nearly the same thing (as far as I remember!) and it didn't work. I will try this when I come home again.
To all the others:
Any ideas how to get the rectangle transparent? hehe, I hope I don't get the source code I wrote cause then I will be more than bewildered
See you all.
Stefan