Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Всплывающие подсказки чекбоксов

318
09 ноября 2007 года
nof
193 / / 03.04.2006
Ребят, есть несколько чекбоксов, как сделать, чтобы при наводке на них мышки, вылазила подсказка?
В какую сторону смотреть?
320
09 ноября 2007 года
m_Valery
1.0K / / 08.01.2007
Цитата: nof
Ребят, есть несколько чекбоксов, как сделать, чтобы при наводке на них мышки, вылазила подсказка?
В какую сторону смотреть?


1.Добавляешь контрол-переменные для каждого чекбокса.
2.Добавляешь 3 переменные в хидер-файле,допустим

 
Код:
...CToolTipCtrl* m_Tip;
    COLORREF m_TipFront;
    COLORREF m_TipBack;
...

3.В ф-ии OnInitDialog допиши
Код:
... if (!m_Tip)
    {
        m_Tip =new CToolTipCtrl;
        m_Tip->Create(this,TTS_ALWAYSTIP);
        //изменим размер используемой подсказки
        //в частности, это дает нам возможность выводить
        //многострочный текст подсказки
        m_Tip->SetMaxTipWidth(200);
        m_Tip->AddTool(&m_button,L"Пример подсказки для checkbox");
                         // тут так же для других чекбоксов...
        m_Tip->Activate(TRUE);
    }

    //Установка цвета текста и фона подсказок
    //цвет заднего фона подсказки
    m_TipBack=RGB(255,255,255);
    WPARAM wParam=(WPARAM)m_TipBack;
    LPARAM lParam = 0;
    ::SendMessage(m_Tip->m_hWnd,TTM_SETTIPBKCOLOR,wParam, lParam);  
    //цвет самого текста подсказки
    m_TipFront=RGB(0,0,255);
    wParam=(WPARAM)m_TipFront;
    ::SendMessage(m_Tip->m_hWnd,TTM_SETTIPTEXTCOLOR,wParam, lParam);...

4.Перегрузи ф-ию PreTranslateMessage и перед return допиши
 
Код:
...
    if (m_Tip!=NULL)
            m_Tip->RelayEvent(pMsg);
...

5.Наводишь курсор на чекбокс и смотришь на всплывающие подсказки.
318
09 ноября 2007 года
nof
193 / / 03.04.2006
Спасибо огромное!

а m_button в твоём коде - это контрол-переменная одного из чекбоксов?
320
09 ноября 2007 года
m_Valery
1.0K / / 08.01.2007
Да.Добавь для каждого свою.
318
20 ноября 2007 года
nof
193 / / 03.04.2006
Цитата: m_Valery
Да.Добавь для каждого свою.


Слушай... Вот такая проблема возникла.
Запускаю программу, навожу мышку на чекбоксы - всё ок, всплывающая подсказа отображается. Но когда программа начинает работать (это TCP-клиент, который подключается к серверу и общается с ним) всплывающие подсказки перестают отображаться...
Диалог, в котором находятся эти чекбоксы находится в табе, может с этим связано?

Программа не многопоточная. Всё идёт в одном процессе. Сообщения в процессе общения с сервером обрабатываются так:

 
Код:
if (PeekMessage(&msg, 0, 0, 0, 1)) {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог