Главная :: Программы для программирования :: wxWidgets :: Перевод книги "Programming with wxWidgets" :: Глава III – Обработка сообщений. Часть 4
Программиста спрашивают: Скажите пожалуиста, который час? Программист: Который час, если вас это прикалывает девушка.

Глава III – Обработка сообщений. Часть 4

Идентификаторы окон

Идентификаторы окон являются целыми числами, которые используются для определения окна в системе сообщений. Фактически, идентификаторы не обязаны быть уникальными в пределах всего приложения – они должны быть уникальны в пределах некоторого контекста, такого как фрейм и его дочерние окна. Например, вы можете использовать идентификатор wxID_OK в большом числе диалогов при условии, что у вас нет нескольких окон с этим идентификатором в одном диалоге.

Если вы передадите идентификатор wxID_ANY конструктору для окна, то wxWidgets автоматически сгенерирует идентификатор. Эта возможность бывает полезной, когда вам не важна информация о точном значении идентификатора, например потому, что вы не собираетесь обрабатывать сообщения от этого окна или из-за того, что вы обрабатываете сообщения от всех элементов управления в одном месте. В последнем случае вы должны использовать wxID_ANY в таблице сообщений или при вызове wxEvtHandler::Connect. Сформированный таким образом идентификатор всегда отрицателен, а поэтому никогда не конфликтует с определенными пользователем идентификаторами, которые всегда должны быть положительными.

wxWidgets предоставляет некоторое число стандартных идентификаторов, перечисленных в Таблице 3.2. Используйте стандартные идентификаторы там где это только возможно! Некоторые системы имеют возможность использовать эту информацию, чтобы использовать для таких окон особую графику (как например, для кнопок OK и Cancel в GTK+) или стандартное поведение (такое как эмуляция сообщения от wxID_CANCEL при нажатии на клавишу Esc). В системе Mac OS X элементы меню с идентификаторами wxID_ABOUT, wxID_PREFERENCES и wxID_EXIT специальным образом интерпретируются и выносятся в системное меню. Некоторые компоненты wxWidgets, такие как wxTextCtrl, знают как обрабатывать команды меню или кнопок с идентификаторами wxID_COPY, wxID_PASTE и wxID_UNDO.

Стандартные идентификаторы для окон

Для своих собственных идентификаторов вам необходимо использовать числа, которые больше wxID_HIGHEST или меньше wxID_LOWEST.