2011-11-08 39 views
1

我正在嘗試CMFCButton工具提示,發現如果我撥打EnableFullText()工具提示不顯示。CMFCButton :: EnableFullTextTooltip是做什麼的?

這裏有一個小例子:

// 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。

回答

3

有關MFC的奇妙之處在於Microsoft爲您提供了源代碼。如果有任何問題,請查看代碼。

看着EnableFullTextTooltip,它所做的只是設置一對布爾標誌。重要的是m_bDelayFullTextTooltipSet。該標誌在OnDraw函數中被檢查。工具提示文本設置爲SetTooltip:如果完整按鈕文本適合按鈕本身,則用NULL調用它,否則用按鈕文本調用它。

看來這個功能的目的是讓工具提示顯示當按鈕太小時應該在按鈕上繪製的文本。如果這不是您想要的,請避免使用此函數,因爲它會覆蓋您設置的工具提示。

+0

是的,我看過,並得出同樣的結論,但也沒有設法使其工作。但是現在,在一整晚的睡眠之後,我已經在第一次嘗試時就開始工作了。是的,如果它不適合按鈕,它會在工具提示中繪製整個標題。但這不是文檔所說的。這是關於MFC的可怕事情之一,它往往有一個可怕的文件,有時是直接誤導。 – MikMik