Как добавить всплывающие подсказки в диалог WTL

Odi$$ey Odi$$ey
Здравствуйте, Игорь Вартанов, Александр Шаргин, Вы писали:

ИВА>Статья:

ИВА>Как добавить всплывающие подсказки для элементов управления диалога?

до кучи к WinAPI и MFC — как то же самое делается в WTL:

  • добавляем в данные диалога CToolTipCtrl (atlctrls.h):

    class CMainDlg : public CAxDialogImpl<CMainDlg>,
       public CWinDataExchange<CMainDlg>
    {
      ...
    private:
       CToolTipCtrl tooltip_;
       CEdit edit1;
       CButton CancelBtn_;
       CButton OkBtn_;
    };

  • в OnInitDialog() вставляем инициализацию tooltip_:

    LRESULT CMainDlg::OnInitDialog( UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/ )
    {
       ...
         
       // создание тултипа
       tooltip_.Create( m_hWnd, rcDefault, NULL, WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP, WS_EX_TOPMOST );
       ATLASSERT( tooltip_.IsWindow() );
    
       //Связываем контролы с тултипами
       ATLVERIFY( tooltip_.AddTool( &CToolInfo( TTF_SUBCLASS,
                                                edit1, 
                                                0, // будет заполнено автоматом и добавлен TTF_IDISHWND
                                                NULL,
                                                "Это поле для ввода текста" ) ) );
    
       ATLVERIFY( tooltip_.AddTool( &CToolInfo( TTF_SUBCLASS,
                                                OkBtn_, 0, NULL,
                                                "А это кнопка для выхода из программы" ) ) );
    
       ATLVERIFY( tooltip_.AddTool( &CToolInfo( TTF_SUBCLASS,
                                                CancelBtn_, 0, NULL,
                                                "А это еще одна кнопка для выхода из программы" ) ) );
    
       ATLVERIFY( tooltip_.AddTool( &CToolInfo( TTF_SUBCLASS,
                                                GetDlgItem( IDC_STATIC_TEXT ), 0, NULL,
                                                "А это static со стилем Notify" ) ) );
    
       // разрешаем переносы строк
       tooltip_.SetMaxTipWidth( 300 );
    
       tooltip_.Activate( TRUE );
    
       return TRUE;
    }

  • все

    http://gzip.rsdn.org/File/82/wtltooltips.png

    Демо-проект — wtltooltips.rar
    ... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
  • AlexKom
    AlexKom
    20.04.2007 02:54
    Здравствуйте, Odi$$ey, Вы писали:

    OE>Здравствуйте, Игорь Вартанов, Александр Шаргин, Вы писали:


    ИВА>>Статья:

    ИВА>>Как добавить всплывающие подсказки для элементов управления диалога?

    OE>до кучи к WinAPI и MFC — как то же самое делается в WTL:


    добрый день! столкнулся с такой интересной проблемой (относится к ATL/WTL проектам):

    Тултип для Edit поля после кликания на нам пропадает. И не появляется до того момента, пока сначала не покажется другой тултип (если брать пример из статьи — то надо посмотреть тултип на кнопке, а потом опять будет показываться тултип на edit-е).

    Как с этим бороться? подскажите