2010-09-26 5 views
1

En développant pour WM 6, j'appelle CreateWindow avec hWndParent défini sur la fenêtre dont je veux être le propriétaire. Je ne définis pas le style WS_CHILD, mais la fenêtre créée devient néanmoins une fenêtre enfant. Quelle est la bonne façon de faire cela?Windows propriétaire sur Windows Mobile

Le MSDN article pour CreateWindow mentionne ce comportement pour WinCE 1.0:

Windows CE 1.0 ne supporte pas les fenêtres appartenant, à l'exception des boîtes de dialogue. Si le paramètre hwndParent n'est pas NULL, la fenêtre reçoit implicitement le style WS_CHILD.

Ou, peut-être, est tout le mal de documentation MSDN WinCE quand il dit que CreateWindow ne crée fenêtres appartenant et CreateDialog * fonctions qui appelera CreateWindow, comme le commentaire de Hans implique Passant?

+3

Quelle partie de "ne supporte pas" ne vous est pas claire? –

+0

J'aurais pensé que nous avions quelques progrès depuis WinCE 1.0. L'article dit aussi: "Pour créer une fenêtre enfant ou une fenêtre possédée, fournissez un handle de fenêtre valide". –

Répondre

1

La bonne façon de le faire est de donner la fenêtre le style WS_POPUP, tel que décrit dans le document Window Relationship Fundamentals de Microsoft pour WinCE 3.0:

Vous pouvez créer une relation propriétaire/fenêtre propriété entre les fenêtres de haut niveau lorsque vous créez une fenêtre avec le style WS_POPUP. Parce que les fenêtres de niveau supérieur n'ont pas de fenêtre parent, la fenêtre que vous spécifiez en tant que fenêtre parent lorsque vous appelez la fonction CreateWindow devient la fenêtre propriétaire de la nouvelle fenêtre.

0

Si vous passez WS_OVERLAPPED en tant que style, cela activera WS_CHILD pour vous. Quels styles passes-tu lors de la création?

Vous voulez probablement passer 0 pour le style.

+0

Le passage à 0 pour le style crée toujours une fenêtre enfant. –