Уроки Iczelion'а



         

Урок 27. Тултип-контрол


Мы изучим контроль tooltiр. Что это такое, как его создать и

как им пользоваться.

Теория:

Тултип - это маленькая прямоугольное окно, которое отображается, когда курсор

мыши находится над какой-то определенной областью. Окно тултипа содержит

текст, заданный программистом. В этом отношении тултип играет ту же роль, что

и окно статуса, но оно исчезает, когда пользователь кликает или убирает

курсор мыши из заданной области. Вы, вероятно, знакомы с тултипами,

ассоциированные с кнопками тулбара. Эти "тултипы" - одно из удобств,

предоставляемых тулбаром. Если вам нужны тултипы для других окон/контролов,

вам необходимо создать собственный тултип контрол.

Теперь, когда вы знаете, что такое тултип, давайте перейдем к тому, как мы

можем создать и использовать его. Ниже pасписаны шаги:

  • Создать тултип-контрол функцией CreateWindowEx.
  • Определить регион, в котором он будет отслеживать передвижения мыши.
  • Передать регион тултип-контролу.
  • Передавать сообщения от мыши в указанном регионе тултип-контролу (этот

    шаг зависит от заданных флагов).

  • Ниже мы детально проанализируем каждый шаг.

    Создание тултипа

    Тултип - это common control. Поэтому вам необходимо где-нибудь в программе

    вызвать функцию InitCommonControls, чтобы MASM подлинковал к выходнуму

    экзешнику comctl32.dll. Вы создаете тултип с помощью CreateWindowEx. Это

    будет выглядеть примерно так:

    .data

    TooltipClassName db "Tooltips_class32",0

    .code

    .....

    invoke InitCommonControls

    invoke CreateWindowEx, NULL, addr TooltipClassName, NULL,

    TIS_ALWAYSTIp, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,

    CW_USEDEFAULT, NULL, NULL, hInstance, NULL

    Обратите внимание на стиль окна: TIS_ALWAYSTIр. Этот стиль указывает, что

    тултип будет показываться, когда курсор мыши будет находиться над заданной

    областью вне зависимости от статуса окна. То есть, если вы будете

    использовать этот флага, тултип будет появляться (когда курсор мыши будет

    находиться над определенной областью), даже если окно, с которым ассоциирован




    Содержание  Назад  Вперед