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

ИВА>Статья:

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


до кучи к 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;
    }

  • все



    Демо-проект — wtltooltips.rar
    ... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
  • Автор: Odi$$ey    Оценить