Сообщение Re[3]: WS_CHILD и активность окна от 12.12.2022 10:10
Изменено 12.12.2022 10:14 Pavel Dvorkin
Re[3]: WS_CHILD и активность окна
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, Pavel Dvorkin, Вы писали:
PD>>Эти 2 сообщения относятся к MDI.
ЕМ>Из чего это следует?
https://learn.microsoft.com/en-us/dotnet/desktop/winforms/advanced/how-to-determine-the-active-mdi-child?view=netframeworkdesktop-4.8
https://learn.microsoft.com/en-us/dotnet/desktop/winforms/advanced/how-to-send-data-to-the-active-mdi-child?view=netframeworkdesktop-4.8
https://learn.microsoft.com/ru-ru/dotnet/desktop/winforms/advanced/how-to-determine-the-active-mdi-child?view=netframeworkdesktop-4.8
https://stackoverflow.com/questions/46768865/how-to-change-the-active-mdi-child
http://win-api.narod.ru/a6594.htm
WM_CHILDACTIVATE Performs activation processing when MDI child windows are sized, moved, or displayed. This message must be passed.
PD>>MDI child могут иметь активность.
ЕМ>Если они могут иметь активность в том смысле, как она определена в описании оконных стилей, то возникает противоречие. Или они могут имитировать активность своими силами — так, что окно формально считается неактивным, но фактически отображается с подсвеченным заголовком и фокусом?
Это особый стиль для MDI child. Нет тут противоречия. В MDI приложении одно из child окон имеет синий заголовок и является активным в смысле MDI.
Женя, не надо спорить и искать ошибки и противоречия. Я это помню еще о времен Windows 3.0.
ЕМ>Здравствуйте, Pavel Dvorkin, Вы писали:
PD>>Эти 2 сообщения относятся к MDI.
ЕМ>Из чего это следует?
https://learn.microsoft.com/en-us/dotnet/desktop/winforms/advanced/how-to-determine-the-active-mdi-child?view=netframeworkdesktop-4.8
https://learn.microsoft.com/en-us/dotnet/desktop/winforms/advanced/how-to-send-data-to-the-active-mdi-child?view=netframeworkdesktop-4.8
https://learn.microsoft.com/ru-ru/dotnet/desktop/winforms/advanced/how-to-determine-the-active-mdi-child?view=netframeworkdesktop-4.8
https://stackoverflow.com/questions/46768865/how-to-change-the-active-mdi-child
http://win-api.narod.ru/a6594.htm
WM_CHILDACTIVATE Performs activation processing when MDI child windows are sized, moved, or displayed. This message must be passed.
PD>>MDI child могут иметь активность.
ЕМ>Если они могут иметь активность в том смысле, как она определена в описании оконных стилей, то возникает противоречие. Или они могут имитировать активность своими силами — так, что окно формально считается неактивным, но фактически отображается с подсвеченным заголовком и фокусом?
Это особый стиль для MDI child. Нет тут противоречия. В MDI приложении одно из child окон имеет синий заголовок и является активным в смысле MDI.
Женя, не надо спорить и искать ошибки и противоречия. Я это помню еще о времен Windows 3.0.
Re[3]: WS_CHILD и активность окна
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, Pavel Dvorkin, Вы писали:
PD>>Эти 2 сообщения относятся к MDI.
ЕМ>Из чего это следует?
https://learn.microsoft.com/en-us/dotnet/desktop/winforms/advanced/how-to-determine-the-active-mdi-child?view=netframeworkdesktop-4.8
https://learn.microsoft.com/en-us/dotnet/desktop/winforms/advanced/how-to-send-data-to-the-active-mdi-child?view=netframeworkdesktop-4.8
https://learn.microsoft.com/ru-ru/dotnet/desktop/winforms/advanced/how-to-determine-the-active-mdi-child?view=netframeworkdesktop-4.8
https://stackoverflow.com/questions/46768865/how-to-change-the-active-mdi-child
http://win-api.narod.ru/a6594.htm
WM_CHILDACTIVATE Performs activation processing when MDI child windows are sized, moved, or displayed. This message must be passed.
PD>>MDI child могут иметь активность.
ЕМ>Если они могут иметь активность в том смысле, как она определена в описании оконных стилей, то возникает противоречие. Или они могут имитировать активность своими силами — так, что окно формально считается неактивным, но фактически отображается с подсвеченным заголовком и фокусом?
Это особый стиль для MDI child. Нет тут противоречия. В MDI приложении одно из child окон имеет синий заголовок и является активным в смысле MDI.
Женя, не надо спорить и искать ошибки и противоречия. Я это помню еще о времен Windows 3.0.
https://www.frolov-lib.ru/books/bsp/v17/ch1_4.htm
Функция окна Document Window очень похожа на функцию обычного дочернего окна, но все необработанные ей сообщения должны передаваться функции DefMDIChildProc (а не функции DefWindowProc). Функция DefMDIChildProc обрабатывает сообщения WM_CHILDACTIVATE, WM_GETMINMAXINFO, WM_MENUCHAR, WM_MOVE, WM_NEXTMENU, WM_SETFOCUS, WM_SIZE, WM_SYSCOMMAND. Перечисленные сообщения должны в обязательном порядке передаваться функции DefMDIChildProc, даже если функция окна Document Window обрабатывает их самостоятельно.
ЕМ>Здравствуйте, Pavel Dvorkin, Вы писали:
PD>>Эти 2 сообщения относятся к MDI.
ЕМ>Из чего это следует?
https://learn.microsoft.com/en-us/dotnet/desktop/winforms/advanced/how-to-determine-the-active-mdi-child?view=netframeworkdesktop-4.8
https://learn.microsoft.com/en-us/dotnet/desktop/winforms/advanced/how-to-send-data-to-the-active-mdi-child?view=netframeworkdesktop-4.8
https://learn.microsoft.com/ru-ru/dotnet/desktop/winforms/advanced/how-to-determine-the-active-mdi-child?view=netframeworkdesktop-4.8
https://stackoverflow.com/questions/46768865/how-to-change-the-active-mdi-child
http://win-api.narod.ru/a6594.htm
WM_CHILDACTIVATE Performs activation processing when MDI child windows are sized, moved, or displayed. This message must be passed.
PD>>MDI child могут иметь активность.
ЕМ>Если они могут иметь активность в том смысле, как она определена в описании оконных стилей, то возникает противоречие. Или они могут имитировать активность своими силами — так, что окно формально считается неактивным, но фактически отображается с подсвеченным заголовком и фокусом?
Это особый стиль для MDI child. Нет тут противоречия. В MDI приложении одно из child окон имеет синий заголовок и является активным в смысле MDI.
Женя, не надо спорить и искать ошибки и противоречия. Я это помню еще о времен Windows 3.0.
https://www.frolov-lib.ru/books/bsp/v17/ch1_4.htm
Функция окна Document Window очень похожа на функцию обычного дочернего окна, но все необработанные ей сообщения должны передаваться функции DefMDIChildProc (а не функции DefWindowProc). Функция DefMDIChildProc обрабатывает сообщения WM_CHILDACTIVATE, WM_GETMINMAXINFO, WM_MENUCHAR, WM_MOVE, WM_NEXTMENU, WM_SETFOCUS, WM_SIZE, WM_SYSCOMMAND. Перечисленные сообщения должны в обязательном порядке передаваться функции DefMDIChildProc, даже если функция окна Document Window обрабатывает их самостоятельно.