(Obtenir l'adresse mémoire de la classe d'une fenêtre par son handle)
Bonjour à toutes et à tous,
Sauriez-vous s'il vous plaît, s'il existe une instruction API qui retourne l'adresse mémoire, où est stockée la classe d'une fenêtre de sa structure WNDCLASS (comme au moment de sa création uniquement par API, par exemple) ?
Merci d'avance
A +
L'adresse mémoire de la classe d'une fenêtre par son handle?
Je ne pense pas que l'on puisse avoir l'adresse mémoire où est stockée la classe ( Window la garde secrète
) Mais on peut en avoir une copie !
grâce aux fonctions GetClassName et GetClassInfoEx
Regarde mon petit exemple :


Regarde mon petit exemple :
Code : Tout sélectionner
If OpenWindow(0, 100, 200, 200, 200,#PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Window Class")
handle = WindowID()
StartDrawing(WindowOutput())
class$=Space(255)
GetClassName_(handle,@class$,Len(class$))
class$ = Left(class$,Len(class$))
wc.WNDCLASSEX
wc\cbSize = SizeOf(WNDCLASSEX)
If GetClassInfoEx_(GetModuleHandle_(#Null),@class$,@wc)
DrawingMode(1)
Locate(10,30)
DrawText("Class : "+PeekS(wc\lpszClassName))
Locate(10,50)
DrawText("WndProc : "+Hex(wc\lpfnWndProc))
Locate(10,70)
DrawText("Style : "+Hex(wc\style))
;typedef struct _WNDCLASSEX { // wc
; UINT cbSize;
; UINT style;
; WNDPROC lpfnWndProc;
; int cbClsExtra;
; int cbWndExtra;
; handle hInstance;
; hIcon hIcon;
; hCursor hCursor;
; HBRUSH hbrBackground;
; LPCTSTR lpszMenuName;
; LPCTSTR lpszClassName;
; hIcon hIconSm;
;} WNDCLASSEX;
EndIf
StopDrawing()
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
Until Quit = 1
EndIf
End
Bonjour erix14,
Je te remercie pour ta réponse, ainsi que pour le temps passé à réaliser le programme d'exemple.
Oui, c'est la bonne API pour copier la classe d'une fenêtre.
Vue le nombre des API avec leurs noms pas toujours explicites, il devient bien difficile de s'y retrouver.
Encore un grand merci
A +
Je te remercie pour ta réponse, ainsi que pour le temps passé à réaliser le programme d'exemple.
Oui, c'est la bonne API pour copier la classe d'une fenêtre.
Vue le nombre des API avec leurs noms pas toujours explicites, il devient bien difficile de s'y retrouver.
Encore un grand merci
A +