Сообщение Re: свой контрол и wm_cut/wm_copy/wm_clear/wm_paste от 28.11.2018 17:08
Изменено 28.11.2018 17:15 Evgeniy Skvortsov
Re: свой контрол и wm_cut/wm_copy/wm_clear/wm_paste
Здравствуйте, CEMb, Вы писали:
CEM>Такой вопрос, в свою оконную процедуру прилетает WM_KEYDOWN (Ctrl key) + WM_CHAR (что-то странное) вместо WM_CUT/WM_COPY при нажатии Ctrl+X/Ctrl+C
CEM>Что-то сходу не соображу, что сделать, чтобы в окно стали лететь сообщения?
CEM>Пока писал, подумал: IsDialogMessage, возможно…
Интересно стало, глянул исходники винды (ну те старые которые утекли сто лет назад)
В общем EDIT контрол сам себе шлет эти сообщения. Банально в обработчике WM_KEYDOWN проверяет нажат ли Ctrl и ставит флаг, и дальше в обработчике WM_CHAR проверяет что если нажата комбинация Ctrl-X и прочее, то шлет сам себе WM_CUT
Так что это не в винду глобальная особенность встроена, а просто так сам EDIT контрол реализован. У себя сделай так же. Отлавливай эти нажатия и шли своему окну эти сообщения.
CEM>Такой вопрос, в свою оконную процедуру прилетает WM_KEYDOWN (Ctrl key) + WM_CHAR (что-то странное) вместо WM_CUT/WM_COPY при нажатии Ctrl+X/Ctrl+C
CEM>Что-то сходу не соображу, что сделать, чтобы в окно стали лететь сообщения?
CEM>Пока писал, подумал: IsDialogMessage, возможно…
Интересно стало, глянул исходники винды (ну те старые которые утекли сто лет назад)
В общем EDIT контрол сам себе шлет эти сообщения. Банально в обработчике WM_KEYDOWN проверяет нажат ли Ctrl и ставит флаг, и дальше в обработчике WM_CHAR проверяет что если нажата комбинация Ctrl-X и прочее, то шлет сам себе WM_CUT
Так что это не в винду глобальная особенность встроена, а просто так сам EDIT контрол реализован. У себя сделай так же. Отлавливай эти нажатия и шли своему окну эти сообщения.
Re: свой контрол и wm_cut/wm_copy/wm_clear/wm_paste
Здравствуйте, CEMb, Вы писали:
CEM>Такой вопрос, в свою оконную процедуру прилетает WM_KEYDOWN (Ctrl key) + WM_CHAR (что-то странное) вместо WM_CUT/WM_COPY при нажатии Ctrl+X/Ctrl+C
CEM>Что-то сходу не соображу, что сделать, чтобы в окно стали лететь сообщения?
CEM>Пока писал, подумал: IsDialogMessage, возможно…
Интересно стало, глянул исходники винды (ну те старые которые утекли сто лет назад)
В общем EDIT контрол сам себе шлет эти сообщения. Банально в обработчике WM_KEYDOWN проверяет нажат ли Ctrl и ставит флаг, и дальше в обработчике WM_CHAR проверяет что если нажата комбинация Ctrl-X и прочее, то шлет сам себе WM_CUT
Так что это не в винду глобальная особенность встроена, а просто так сам EDIT контрол реализован. У себя сделай так же. Отлавливай эти нажатия и шли своему окну эти сообщения.
CEM>Такой вопрос, в свою оконную процедуру прилетает WM_KEYDOWN (Ctrl key) + WM_CHAR (что-то странное) вместо WM_CUT/WM_COPY при нажатии Ctrl+X/Ctrl+C
CEM>Что-то сходу не соображу, что сделать, чтобы в окно стали лететь сообщения?
CEM>Пока писал, подумал: IsDialogMessage, возможно…
Интересно стало, глянул исходники винды (ну те старые которые утекли сто лет назад)
В общем EDIT контрол сам себе шлет эти сообщения. Банально в обработчике WM_KEYDOWN проверяет нажат ли Ctrl и ставит флаг, и дальше в обработчике WM_CHAR проверяет что если нажата комбинация Ctrl-X и прочее, то шлет сам себе WM_CUT
кусок исходника Windows_2000_source_code\private\ntos\w32\ntuser\client\editml.c | |
| |
Так что это не в винду глобальная особенность встроена, а просто так сам EDIT контрол реализован. У себя сделай так же. Отлавливай эти нажатия и шли своему окну эти сообщения.