Chriss a écrit :
mais pourtant meme si c'est C qui appelle la fonction destroy() cette fonction est dans B.
|
C c'est un thread ? B une classe ?
C'est pas tres clair entre tes threads et tes classes A, B, C.
J'ai l'impression que tu mélanges...
Chriss a écrit :
En pseudo code:
//classe qui affiche la fenetre
class Window
{ methode pumpMessage(){
//cette methode attend un message WM_QUIT pour sortir de sa boucle
} methode destroy(){
DestroyWindow()
}
}
//classe d'ou on veut commander la fermeture de la fenetre
// cree par B la classe ?
class DestroyWindow
{
methode constructeur (instance de Window)
win=instance de Window
methode destroy() fait win.destroy()
}
Donc meme si j'execute la methode destroy , je le fais depuis une instance de B. Donc le message WM_QUIT doit bien etre lancé au bon endroit.
|
L'important est de voir quel thread crée ta fenetre et quel thread veut la détruire. Si tu crées ta fenetre dans ton thread B et que tu appelles destroy() alors que c'est le thread C qui s'execute alors ca peut pas marcher.
Chriss a écrit :
Ou est la page ou t'as trouve ton info "A thread cannot use DestroyWindow to destroy a window created by a different thread" ?
|
dans la msdn. Si tu ne l'a pas http://msdn.microsoft.com/default.aspx