Maison  >  Article  >  Opération et maintenance  >  Win32 SDK Basics (7) Étude de cas sur la création d'une fenêtre enfant d'une fenêtre

Win32 SDK Basics (7) Étude de cas sur la création d'une fenêtre enfant d'une fenêtre

黄舟
黄舟original
2017-06-06 09:47:034580parcourir

Qu'est-ce qu'une fenêtre enfant ? Lorsque nous cliquons sur un certain bouton d'une fenêtre Windows, par exemple en cliquant sur le bouton de fermeture de la fenêtre, une fenêtre apparaîtra souvent pour demander des informations pertinentes. Une fenêtre contextuelle comme celle-ci est une sous-fenêtre. de la fenêtre principale. Lorsque nous créons une fenêtre enfant, nous utilisons également CreateWindow ou CreateWindowEx API.
Jetons un coup d'œil au prototype de la fonction de CreateWindow :

HWND WINAPI CreateWindow(
_In_opt_ LPCTSTR lpClassName,
_In_opt_ LPCTSTR lpWindowName,
_In_ DWORD dwStyle,
_In_ int x,
_In_ int y,
_In_ int nWidth,
_In_ int nHeight,
_In_opt_ HWND hWndParent,
_In_opt_ HMENU hMenu,
_In_opt_ HINSTANCE hInstance,
_In_opt_ LPVOID lpParam
);

Ici, nous introduisons uniquement le troisième paramètre dwStyle, qui définit le style de la fenêtre. Lorsque nous avons créé la première fenêtre Windows dans cette colonne, nous avons défini la valeur sur WS_OVERLAPPEDWINDOW. Ce paramètre signifie que les fenêtres peuvent se chevaucher. Nous souhaitons créer une fenêtre enfant, ce qui est également réalisé en définissant le style WS_CHILD de la fenêtre. Si vous devez afficher une fenêtre enfant, vous devez également ajouter le style WS_VISIBLE. Si vous souhaitez afficher la sous-fenêtre de manière pop-up (similaire à une boîte de dialogue de confirmation de fermeture), vous devez ajouter le style WS_POPUP.
Nous sommes au dessus du code de la fenêtre de création dans cette colonne, en ajoutant le code suivant à la fonction principale :

int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow)
{
// TODO: Place code here.

g_hInstance = hInstance;
BOOL nRet = Register("Main", WndProc);
if (!nRet)
{
MessageBox(NULL, "注册失败", "Infor", MB_OK);
return 0;
}
HWND hWnd = CreateMain("Main", "window");

CreateWindow("Main", "子窗口",
WS_OVERLAPPEDWINDOW|WS_CHILD|WS_VISIBLE|WS_POPUP, CW_USEDEFAULT, CW_USEDEFAULT, 400, 200,
hWnd, NULL, g_hInstance, NULL);


Display(hWnd);
Message();
return 0;
}

Notez le 16ème code, c'est-à-dire que nous utilisons le programme Createwindow, l'effet est le suivant :


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn