Toon posts:

[C++/WIN32 API] DestroyWindow uitleg

Pagina: 1
Acties:

Verwijderd

Topicstarter
Momenteel ben ik in C++ een user interface aan het programmeren met
WIN32 API calls. Ik had een klein vraagje even om t zeker te weten.
De vraag is het volgende
Ik maak een window aan met CreateWindow(..
op dit window maak ik bijvoorbeeld een Button met CreateWindowEx
Als ik het Window wil verwijderen roep ik DestroyWindow aan met de juiste handle.
Mijn vraag is nu het volgende als ik DestroyWindow op de parent Handle aanroep.
Wordt dan automatisch ook een DestroyWindow op de childwindows aangeroepen ? in dit geval dus de Button.
Als dit zo is wordt het child window dan ook op NULL gezet ?

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 04:19
Uit de MSDN informatie (goochelen op MSDN en DestroyWindow):
If the specified window is a parent or owner window, DestroyWindow automatically destroys the associated child or owned windows when it destroys the parent or owner window. The function first destroys child or owned windows, and then it destroys the parent or owner window.
Wat bedoel je trouwens met "wordt het child window dan ook op NULL gezet"?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:21

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op 14 November 2002 @ 14:47:
Als dit zo is wordt het child window dan ook op NULL gezet ?


Uiteraard niet, windows kan tenslotte niet weten waar jij al je variabelen hebt staan met de window handles erin. Als jij bijvoorbeeld nog ergens een HWND hButton hebt staan nadat je m hebt gedestroyed dan is dat een invalid window handle (tenzij er natuurlijk toevalligerwijs een andere window is gecreeert die diezelfde window handle heeft gekregen)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Bedankt, kon 't niet vinden
Wat ik daarmee bedoel is dat de HWND handle van het child window ook op NULL wordt gezet en niet een vage pointer in het geheugen heeft.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 04:19
Verwijderd schreef op 14 November 2002 @ 14:57:
Wat ik daarmee bedoel is dat de HWND handle van het child window ook op NULL wordt gezet en niet een vage pointer in het geheugen heeft.
Denk je dat Windows dat bij gaat zitten houden? Kom nou. :+

Niet-geheel-on-topic: weet iemand toevallig hoe Windows omgaat met aanroepen op ongeldige handles? Wordt dat een mooie crash of houdt Window bij welke handles geldig zijn en kan 'ie op die manier fouten afvangen? Ik ruim mijn handles altijd netjes op, dus ik kan me niet herinneren hier in de praktijk ooit mee in aanraking te zijn gekomen.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:21

.oisyn

Moderator Devschuur®

Demotivational Speaker

Soultaker: RTFM :P

GetLastError () retourneert in die gevallen een ERROR_INVALID_HANDLE

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 04:19
Als ik het echt had willen weten, had ik dat gedaan. ;) Ik wilde vooral anderen de kans geven om hun Windows API kennis te etaleren.

Je mag me bedanken, hoor. :>

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:21

.oisyn

Moderator Devschuur®

Demotivational Speaker



gee, thanks mister O+

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1