PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pointer setzen?


aton
25.09.2003, 14:42
hi!

ich male mit folgendem code in meinem fenster nen string:

invoke DrawText, hdc,offset curMsg,-1, ADDR rect, DT_CENTER or DT_VCENTER


das funktioniert auch, da curMsg so definiert is:

curMsg db "blubber blubber",0


nun will ich aber öfters mal die message ändern, die angezeigt wird.

Msg1 db "dies ist die erste"
Msg2 db "hier das is die 2."
Msg3 db "blubber blubber"


also im moment ist curMsg das gleiche wie Msg3.

wie kann ich die adresse von Msg2 in curMsg setzen, so dass mir

invoke DrawText, hdc,offset curMsg,-1, ADDR rect, DT_CENTER or DT_VCENTER

"hier das is die 2." malt??


Felix Kaiser
25.09.2003, 15:09
Wie wärs damit statt curMsg einfach die Bezeichnung der anderen Messages zu verwenden? Und bevor du das tust noch die abschließenden NULL Chars an deine 3 Messages anhängen, sonst wirds Müll.

aton
25.09.2003, 15:28
ja so hatte ichs... aber ich hab nicht nur 3 sondern ca. 30 messages und ich will eigentlich nur einen DrawText zeile haben.
and den stellen wo sich entscheidet, welche message anzuzeigen ist, setz ich einfach den pointer. nur wie das geht weiss ich nicht...

aton
25.09.2003, 16:00
ok habs rausgefunden....



InitMsg db "lsdfkjlsdkjf",0
Msg1 db "lskdjflkdj",0
Msg2 db "lksdjflkj",0
...

curMsg dd DWORD PTR InitMsg
....

lea eax, Msg1
mov curMsg, eax
....

lea eax,Msg2
mov curMsg,eax
....

invoke DrawText, hdc,curMsg,-1, ADDR rect, DT_CENTER or DT_VCENTER
....



funktioniert wunderbar