Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 138


Поле hwnd определяет родительское окно инструмента.

Поле uld обычно содержит идентификатор инструмента. Если по­ле uFlags включает TTF_IDISHWND, то поле uld содержит хэндл окна, внутри которого находится область, используемая в качестве инструмента.

Следующее поле - reel - определяет координаты окна инструмента от­носительно левого верхнего угла клиентской области окна, определяемо­го полем hwnd. Если поле uFlags включает флаг TTF_IDISHWND, поле rect игнорируется.

В поле hinst хранится хэндл экземпляра программы, которая со­держит строковый ресурс, определяющий текст подсказки. Если это поле не равно нулю, то поле IpszText содержит идентификатор стро­кового ресурса.

Как, надеюсь, читатель уже понял, поле IpszText может интерпрети­роваться по-разному. Итак, вариант первый. Если значение поля IpszText равно LPSTR TEXTCALEBACK, то именно окно, хэндл которого указан в поле hwnd, получает нотификационное сообщение TTN__NEEDTEXT, уведомляющее о том, что родительское окно инструмента должно опре­делить, какой текст подсказки должен быть отображен. Второй вариант -поле содержит идентификатор строкового ресурса, в котором определен текст сообщения. Этот вариант используется тогда, когда поле hinst не равно 0. Кроме этого, признаком того, что поле содержит идентификатор строкового ресурса, является старшее нулевое слово. И, наконец, третье, наиболее часто использующееся поле, содержит указатель на строку, содержащую текст подсказки.

165

Таким образом, мы видим, что структура типа TOOLINFO полностью определяет, что используется в качестве инструмента - элемент управле­ния или область экрана, а также где находится текст подсказки - в ресур­сах, в строке программы или он определяется родительским окном инст­румента.

В любой момент программа может изменить текст подсказки. Для этого окну подсказки посылается сообщение ТТМ UPDATETIPTEXT, wParam которого должен быть равным 0, a IParam - указывать на структу­ру типа TOOLINFO.

Программа может получить текст, который используется для выдачи подсказки об инструменте с помощью посылки окну подсказки сообще­ния ТТМ GETTEXT. В этом сообщении wParam должен быть равным 0. IParam, как и в предыдущем случае, должен содержать указатель на структуру типа TOOLINFO, в которой определяется инструмент, под­сказка о котором запрашивается. Ноле IpszText указывает на буфер, в который будет записан текст подсказки.




Начало  Назад  Вперед



Книжный магазин