![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Разница между сообщениями CN и WM в DelphiDelphi , ОС и Железо , Справочник по сообщениямВ процессе работы с Delphi нередко можно встретить declarations сообщений от Windows API, подобные CN_NOTIFY и WM_NOTIFY. Вопрос, который часто задают разработчики, заключается в том, какая разница между этими сообщениями и когда их следует использовать. Сообщения с префиксом WM (Window Message) используются в Win32 API и в коде конечного пользователя. В свою очередь, сообщения с префиксами CM (Control Message) и CN (Control Notification) используются внутри VCL (Visual Component Library) - это библиотека визуальных компонентов, входящая в состав Delphi. Когда VCL обрабатывает определенные уведомления WM, такие как WM_COMMAND и WM_NOTIFY, которые отправляются от дочернего контрола к родительскому окну, VCL отражает их как сообщения CN (CN_COMMAND и CN_NOTIFY) обратно к тому контролу, который их отправил. Это позволяет VCL контролам обрабатывать свои собственные уведомления. Например, рассмотрим обработку сообщения WM_NOTIFY в Delphi:
В данном примере мы обрабатываем уведомление WM_NOTIFY, которое отправляется от дочернего контрола к родительскому окну (в данном случае, форме). Если код уведомления равен NM_CUSTOMDRAW и этап рисования равен NM_CUSTOMDRAW_PREPAINT, тогда мы обрабатываем уведомление. В заключение, сообщения WM используются в Win32 API и в коде конечного пользователя, а сообщения CM и CN используются внутри VCL. Понимание разницы между ними поможет разработчикам более эффективно работать с Delphi и обрабатывать уведомления от контролов. В Delphi при работе с Windows API встречаются типы сообщений CN\_NOTIFY и WM\_NOTIFY, и разработчики часто спрашивают, чем они отличаются и когда их нужно использовать. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Справочник по сообщениям ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |