Типичная картина для создания дочернего окна в функции обратного вызова сообщения (WndProc
) в сообщении WM_CREATE
:Создать дочернее окно в WM_CREATE, релевантность того же потока?
LRESULT APIENTRY WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
...
switch (message) {
case WM_CREATE:
....
hwndChild[i] = CreateWindow (szChildClass[i], NULL, WS_CHILDWINDOW | WS_BORDER ...
Я прекрасно понимаю, что это хорошая возможность, но это проблема сделать это в любое время позже? Одной из причин этого является то, что дочернее окно создается внутри одного потока. Но есть ли другая причина?
И как важно создать дочернее окно в том же потоке (как у родителя)? Что касается «Can a child thread of parent GUI dialog thread create a child window?», это, как представляется, не является общей проблемой?