Dans mon application mobile Windows native, j'ai une fenêtre qui crée un dialogue. Disons que ma poignée de fenêtre est hMainWnd
.Qu'est-ce qui provoquerait une fenêtre parent à ne pas savoir qu'elle avait une boîte de dialogue enfant?
je crée le dialogue en utilisant DialogBoxParam()
et passant hMainWnd
en tant que parent de la boîte de dialogue:
DialogBoxParam(_,_,hMainWnd,_,_);
Disons que la poignée de la boîte de dialogue est hDlgWnd
. À partir de la boîte de dialogue, GetParent()
retourne hMainWnd
comme prévu:
//We're inside the dialog created above
HWND hParent = GetParent(hDlgWnd); //hParent == hMainWnd
est ici la chose étrange, appelant GetWindow()
pour trouver les enfants de hMainWnd
retours NULL
, ce qui signifie qu'il n'a pas d'enfant. Je me attends à ce que la fonction renvoie hDlgWnd
//We're inside the main window
HWND hChild = GetWindow(hMainWnd, GW_CHILD); //hChild == NULL
Comment un enfant peut connaître son parent lorsque le parent ne connaît pas son enfant?
Désolé, WS_CHILD était une faute de frappe. Je l'ai réparé et j'ai tenté de clarifier la question. Comment je fais? –
+1 de moi. EnumChildWindows() est ce que vous voulez. –