» » » Роджер Джек - Исчерпывающее руководство по написанию всплывающих подсказок


Авторские права

Роджер Джек - Исчерпывающее руководство по написанию всплывающих подсказок

Здесь можно скачать бесплатно "Роджер Джек - Исчерпывающее руководство по написанию всплывающих подсказок" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Рейтинг:
Название:
Исчерпывающее руководство по написанию всплывающих подсказок
Автор:
Издательство:
неизвестно
Год:
неизвестен
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Исчерпывающее руководство по написанию всплывающих подсказок"

Описание и краткое содержание "Исчерпывающее руководство по написанию всплывающих подсказок" читать бесплатно онлайн.








Заручившись такой поддержкой, давайте посмотрим, как можно добавить задержки к написанным вами подсказкам. Я покажу, как реализовать эквивалент TTDT_AUTOPOP сообщения TTM_SETDELAYTIME. Сообщение с этим параметром устанавливает время задержки перед скрытием подсказки, если курсор мыши неподвижен.

Во-первых, добавим protected– или private-переменные в наш класс, чтобы хранить ID таймера и координаты курсора мыши, когда подсказка видна на экране. Также добавим константу, в которой будет находиться время задержки до автоматического скрытия подсказки. Код будет выглядеть следующим образом:

class CCustomTip: public CWnd {

 .

 .

 .

protected:

 const int m_nAutoPopDelay; // В миллисекундах.

 UINT m_nTimerId;

 CPoint m_LastMousePosition;

 .

 .

 .

};

В конструкторе инициализируем константу m_nAutoPopDelay значением 10000 (десять секунд), а m_nTimerId установим в 0.

CCustomTip::CCustomTip : m_nAutoPopDelay(10000), m_LastMousePosition(0, 0) {

 .

 .

 .

 m_nTimerId = 0;

 .

 .

 .

}

Вы можете установить любой интервал – я задал 10 секунд только в целях демонстрации задержки.

Добавьте код, который запускает таймер, когда показывается подсказка. Например, если бы существовала функция CCustomTip::Show, вы бы добавили следующий код в метод, показывающий окно:

void CCustomTip::Show {

 .

 .

 .

 if (m_nTimerId > 0) {

  VERIFY(KillTimer(m_nTimerId));

  m_nTimerId = 0;

 }

 VERIFY(::GetCursorPos(&m_LastMousePosition));

 m_nTimerId = SetTimer(1, m_nAutoPopDelay, NULL);

 ASSERT(m_nTimerId != 0);

 .

 .

 .

}

Добавьте код для обработки сообщений таймера. Добавьте обработчик сообщения WM_TIMER с помощью ClassWizard. Код обработчика должен выглядеть следующим образом:

void CTitleTip::OnTimer(UINT nIDEvent) {

 CPoint CurrentMousePosition;

 VERIFY(::GetCursorPos(&CurrentMousePosition));

 if (CurrentMousePosition == m_LastMousePosition) {

  Hide();

 } else {

  m_LastMousePosition = CurrentMousePosition;

 }

}

Наконец, добавьте в CCustomTip::Hide код, останавливающий таймер:

void CCustomTip::Hide() {

 if (m_nTimerId > 0) {

  VERIFY(KillTimer(m_nTimerId));

  m_nTimerId = 0;

 } ShowWindow(SW_HIDE);

}


Таким же образом можно реализовать другие типы задержек стандартных элементов ToolTip, но придется отслеживать больше изменений, чем координаты курсора мыши. Например, для реализации эквивалента TTDT_RESHOW (интервал времени перед показом следующей подсказки при перемещении курсора мыши на другую строку, или инструмент) нужно будет создать переменные для хранения времени скрытия последней подсказки и ее содержимого.

Комментарии: 

Небольшое добавление

Искал способ попроще включить поддержку ToolTips без явного использования класса CToolTipCtrl. И в результате сам сделал следующее:

int CContentWnd::OnToolHitTest(CPoint point, TOOLINFO* pTI) const {

 int nHit=0;

 CString csText;

 csText="Закрыть окно";

 HWND m_hWnd=this->GetSafeHwnd();

 pTI->hwnd = m_hWnd;

 pTI->uId = (UINT)m_hWnd;

 pTI->uFlags = TTF_IDISHWND;

 pTI->lpszText=new char[csText.GetLength()+1];

 lstrcpy(pTI->lpszText,(LPCTSTR)csText);

 return nHit;

}

Подсказки можно выводить в любом месте окна

OLEGus1 15.8.2002 14:23 

Примечания

1

Эта информация несколько устарела. Сейчас в класс CToolTipCtrl входит функция SetDelayTime, чьи возможности эквивалентны возможностям TTM_SETDELAYTIME – прим. перев.

2

для этой цели можно также использовать CToolTipCtrl::SetMaxTipWidth – прим.пер.

3

что эквивалентно CToolTipCtrl::SetDelayTime – прим.пер.

4

справедливости ради нужно сказать, что значение SHRT_MAX дает задержку порядка 30 секунд, а не отключает автоисчезание полностью – прим.пер.

5

что эквивалентно CToolTipCtrl::SetTipTextColor – прим.пер.


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Исчерпывающее руководство по написанию всплывающих подсказок"

Книги похожие на "Исчерпывающее руководство по написанию всплывающих подсказок" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Роджер Джек

Роджер Джек - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

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

Отзывы о "Роджер Джек - Исчерпывающее руководство по написанию всплывающих подсказок"

Отзывы читателей о книге "Исчерпывающее руководство по написанию всплывающих подсказок", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.