Что делает CMFCButton :: EnableFullTextTooltip? - PullRequest
1 голос
/ 08 ноября 2011

Я пробовал всплывающие подсказки CMFCButton и обнаружил, что если я вызываю EnableFullText(), всплывающие подсказки не отображаются.

Вот небольшой пример:

// In OnInitDialog()
c_MyBtn.m_nFlatStyle = CMFCButton::BUTTONSTYLE_SEMIFLAT;
c_MyBtn.SetMouseCursorHand();
c_MyBtn.EnableFullTextTooltip();
c_MyBtn.SetTooltip(_T("Some string"));
c_MyBtn.Invalidate();

Итак,эта функция что-то делает?Документы говорят: «Указывает, отображать ли полный текст всплывающей подсказки в большом окне всплывающей подсказки или усеченную версию текста в небольшом окне всплывающей подсказки», но я вижу только то, что подсказки не отображаются.Я пробовал длинные строки и строки с переносами строк, но ничего.

Кто-нибудь знает назначение этой функции и как ее использовать?

Я использую Visual Studio 2008 SP1.

1 Ответ

3 голосов
/ 08 ноября 2011

Замечательная вещь в MFC - это то, что Microsoft предоставляет вам источник. Если есть вопрос, просто посмотрите на код.

Глядя на EnableFullTextTooltip, все, что он делает, это устанавливает пару логических флагов. Важным является m_bDelayFullTextTooltipSet. Этот флаг проверяется в функции OnDraw. Текст всплывающей подсказки устанавливается с помощью SetTooltip: если полный текст кнопки помещается на самой кнопке, он вызывается с NULL, в противном случае он вызывается с текстом кнопки.

Похоже, что цель этой функции состоит в том, чтобы подсказка отображала текст, который должен был быть нарисован на самой кнопке, когда кнопка слишком мала. Если это не то, что вы хотите, избегайте этой функции, потому что она переопределит подсказку, которую вы установили.

...