Client size

10/21/2011 15:47 RunzelEier#1
Hi,

i started to write a little d3d9 tool, which will display target HP and MP.

i want to Center the Text in the middle of the Window.
So my problem is, how do i get the width of the window?

this would be perfect, but how do it get the hWnd of the Process?
BOOL WINAPI GetClientRect(
__in HWND hWnd,
__out LPRECT lpRect
);
10/21/2011 17:31 ToxicData#2
Hallo da dein Name auf Deutsch ist denke ich kann ich es dir auf Deutsch erklären.

Code:
BOOL WINAPI GetClientRect(
__in HWND hWnd,
__out LPRECT lpRect
);
Wenn du den derzeitigen Prozess meinst bekommst du das Handle per CREATION_PARAMETERS oder NULL, als Zweiter/s Parameter/Argument wird LPRECT benötigt ( ein Pointer zu einer RECT Instance ).

Hier mal ein Code aus meinem D3DExploit:
Code:
D3DDEVICE_CREATION_PARAMETERS cparams;
RECT rect;

mDevice->GetCreationParameters(&cparams);
GetWindowRect(cparams.hFocusWindow, &rect);
mfg ToxicData
10/21/2011 17:59 RunzelEier#3
ja, das ist genau das, was ich brauche.

gehe ich recht in der annahme, das ich um
mDevice zu erhalten vorher
IDirect3D9::CreateDevice
hooken muss oder woher bekomm ich das?

Edit: hat sich erledigt.
Ich hook jetzt BeginPaint, das wird nach jedem resize aufgerufen und darüber bekomm ich ja auch die hwnd
10/21/2011 23:57 ToxicData#4
Ok, ich kann dir empfehlen EndScene und Present zu hooken, ich weiß nicht ob BeginPaint für soetwas eine gute wahl ist.

Bzw wenn du soetwas machen willst hole dir den Pointer zur IDirect3DDevice9 Instance (LPDIRECT3DDEVICE9 == IDirect3DDevice9*).
Du bekommst bei fast jeder Function den Pointer zur Device mitgeliefert.

Und es freut mich das ich dir so helfen konnte ^^

mfg ToxicData
10/22/2011 11:49 Medix#5
D3DPRESENT_PARAMETERS
[Only registered and activated users can see links. Click Here To Register...]
:)
10/22/2011 20:16 RunzelEier#6
Natürlich hook ich EndScene um ins bild zu malen.

Aber BeginPaint hooke ich, da es bei jedem resize und nur beim resize vom Fenster aufgerufen wird.
Also wird auch GetClientRect nur aufgerufen, wenn sich die größe vom Fenster ändert.

Ahh.... hab während ich den Post hier geschrieben habe nochmal einwenig in der msdn geblätter und jetzt wirds mir klar...

Naja, ich bleib trotzdem bei meiner Lösung, da ansonsten bei jedem Frame die Fenstergröße überprüft wird und das ist ja unnötig.

Trotzdem vielen Dank