PreludeOfDeath Posted October 8, 2007 Posted October 8, 2007 (edited) Yes, I know, another Transparent Background thing, the topics are everywhere! lolz.So I am trying to display text in the middle of the screen. I am currently using a couple different methods, but nothing looks good. So I will begin by describing what I am doing, then what I am achieving.I used lod3n's technique for a .PNG overlay (http://www.autoitscript.com/forum/index.php?showtopic=47651)Here is the PNG for reference: Those labels are static, they will not change, however, you can see that i left room for statistics.I want another .au3 to read from an ini, values into those spots, which is easy, but the labels themselves are the problem i am having.I have tried using this method: http://www.autoitscript.com/forum/index.php?showtopic=43180 - but it doesnt display the text well. It is choppy, it isnt actually size 11, like i used in the PNG, and it isnt readable!Do I have any other options? What can be done to make this work?The labels have to be able to be changed frequently and limitlessly... Edited October 8, 2007 by PreludeOfDeath
Siao Posted October 8, 2007 Posted October 8, 2007 (edited) Drawing text on DC is a good method and it works good. If it doesn't work for you, post the example how you are using it, so we can maybe fix it. Edited October 8, 2007 by Siao "be smart, drink your wine"
PreludeOfDeath Posted October 9, 2007 Author Posted October 9, 2007 (edited) The DC isnt working.... Still is choppy and crappy looking... lolz Drawing text on DC is a good method and it works good. If it doesn't work for you, post the example how you are using it, so we can maybe fix it. I just copied the main code and did some slight edits.... expandcollapse popup#include <GUIConstants.au3> $font = "Tahoma" $hwnd = GUICreate("Text Region",400,50,405,85,$WS_POPUP,BitOR($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW)) GUISetBkColor(0xFF0000) $rgn = CreateTextRgn($hwnd,"100%",13,$font) SetWindowRgn($hwnd,$rgn) GUISetState() Sleep(20000) Func SetWindowRgn($h_win, $rgn) DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $rgn, "int", 1) EndFunc ;Func CombineRgn(ByRef $rgn1, ByRef $rgn2) ; DllCall("gdi32.dll", "long", "CombineRgn", "long", $rgn1, "long", $rgn1, "long", $rgn2, "int", 2) ;EndFunc Func CreateTextRgn(ByRef $CTR_hwnd,$CTR_Text,$CTR_height,$CTR_font="Microsoft Sans Serif",$CTR_weight=1000) Local Const $ANSI_CHARSET = 0 Local Const $OUT_CHARACTER_PRECIS = 2 Local Const $CLIP_DEFAULT_PRECIS = 0 Local Const $PROOF_QUALITY = 2 Local Const $FIXED_PITCH = 1 Local Const $RGN_XOR = 3 If $CTR_font = "" Then $CTR_font = "Microsoft Sans Serif" If $CTR_weight = -1 Then $CTR_weight = 1000 Local $gdi_dll = DLLOpen("gdi32.dll") Local $CTR_hDC= DLLCall("user32.dll","int","GetDC","hwnd",$CTR_hwnd) Local $CTR_hMyFont = DLLCall($gdi_dll,"hwnd","CreateFont","int",$CTR_height,"int",0,"int",0,"int",0, _ "int",$CTR_weight,"int",0,"int",0,"int",0,"int",$ANSI_CHARSET,"int",$OUT_CHARACTER_PRECIS, _ "int",$CLIP_DEFAULT_PRECIS,"int",$PROOF_QUALITY,"int",$FIXED_PITCH,"str",$CTR_font ) Local $CTR_hOldFont = DLLCall($gdi_dll,"hwnd","SelectObject","int",$CTR_hDC[0],"hwnd",$CTR_hMyFont[0]) DLLCall($gdi_dll,"int","BeginPath","int",$CTR_hDC[0]) DLLCall($gdi_dll,"int","TextOut","int",$CTR_hDC[0],"int",0,"int",0,"str",$CTR_Text,"int",StringLen($CTR_Text)) DLLCall($gdi_dll,"int","EndPath","int",$CTR_hDC[0]) Local $CTR_hRgn1 = DLLCall($gdi_dll,"hwnd","PathToRegion","int",$CTR_hDC[0]) Local $CTR_rc = DLLStructCreate("int;int;int;int") DLLCall($gdi_dll,"int","GetRgnBox","hwnd",$CTR_hRgn1[0],"ptr",DllStructGetPtr($CTR_rc)) Local $CTR_hRgn2 = DLLCall($gdi_dll,"hwnd","CreateRectRgnIndirect","ptr",DllStructGetPtr($CTR_rc)) DLLCall($gdi_dll,"int","CombineRgn","hwnd",$CTR_hRgn2[0],"hwnd",$CTR_hRgn2[0],"hwnd",$CTR_hRgn1[0],"int",$RGN_XOR) DLLCall($gdi_dll,"int","DeleteObject","hwnd",$CTR_hRgn1[0]) DLLCall("user32.dll","int","ReleaseDC","hwnd",$CTR_hwnd,"int",$CTR_hDC[0]) DLLCall($gdi_dll,"int","SelectObject","int",$CTR_hDC[0],"hwnd",$CTR_hOldFont[0]) DLLClose($gdi_dll) Return $CTR_hRgn2[0] EndFunc Edited October 9, 2007 by PreludeOfDeath
PreludeOfDeath Posted October 10, 2007 Author Posted October 10, 2007 Does Anyone else have any other techniques for doing this?
PreludeOfDeath Posted November 3, 2007 Author Posted November 3, 2007 Is there even Another way of Displaying this?
Madza91 Posted November 4, 2007 Posted November 4, 2007 what is wrong with the your code? [quote name='dbzfanatic' post='609696' date='Nov 26 2008, 08:46 AM']This is a help forum not a "write this for me" forum.[/quote](Sorry for bad English) :)
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now