1. VC中如何顯示氣球提示框
//頭文件中添加如下內容
//申明一個成員變數
CToolTipCtrl m_tooltip;
virtual BOOL PreTranslateMessage(MSG* pMsg);
//cpp文件
BOOL CDialogYourDialog::PreTranslateMessage(MSG* pMsg)
{
m_tooltip.RelayEvent(pMsg);
return CDialog::PreTranslateMessage(pMsg);
}
在OnInitDialog()添加以下內容,僅僅是個例子回,根據你自己的需要修改答
if(!m_tooltip.Create(this))
{
MessageBox(_T("創建CToolTip失敗"));
}
else
{
m_tooltip.AddTool(&m_E1, _T("編輯框提示!"));//m_E1替換成你自己的控制項變數
m_tooltip.SetDelayTime(100);
m_tooltip.Activate(TRUE);
}
2. VC++中的CTime頭文件是什麼
是atltime.h呀,這個不用在網上找的。安裝VC的時候,安裝程序會把這個頭文件COPY到VC的子目錄中的。找不到的話,會不會被樓主給誤刪或改名了?
在VS2005+的版本中,在.h或.cpp文件中加上「#include <atltime.h>」就OK了,如果要驗證該頭文件是否存在以及是否在VC環境變數中指定的路徑上,可以滑鼠右鍵單擊這行代碼,在彈出菜單的第一項選擇「打開atltime.h文件」,VS如果能夠識別,就會正確打開,只要能打開,編譯器就不會報錯的。
別問VC6.0,恕不解釋。
3. 如何讓CToolTipCtrl顯示的時候不閃爍,滑鼠移開的時候消失
在頭文件裡面增加變數CToolTipCtrl m_ToolTip;
在OnNMHover裡面讓m_ToolTip顯示
m_ToolTip.Create(this);
m_ToolTip.SetDelayTime(300);
m_ToolTip.AddTool(...);
重載內窗口的PreTranslateMessage函數增加容
m_ToolTip.RelayEvent(pMsg);
4. [VC6 MFC]為什麼使用CToolTipCtrl後,程序無法正常運行
斷點調試,找抄到出問題的行。
BOOLxxxx::PreTranslateMessage(MSG*pMsg)//攔截回車消息
{
//TODO:Addyourspecializedcodehereand/orcallthebaseclass
if(pMsg->message==WM_KEYDOWN)
if(int(pMsg->wParam)==VK_RETURN)
returnTRUE;
returnCDialog::PreTranslateMessage(pMsg);
returnCDialog::PreTranslateMessage(pMsg);
}
5. mfc實現只要滑鼠進入對話框中的一個區域就出現tooltip的提示信息,當滑鼠離開時提示信息馬上消失急..
假設在CDlg**中有一控制項IDC_EDIT_A,想要滑鼠指向該控制項時提示,步驟如下:
1、CDlg**頭文件中聲明成員變數
CToolTipCtrl m_tooltip;
2、CDlg***::OnInitDialog() 中創建並設置參數
m_tooltip.Create(this);
//CToolTipCtrl與控制項關聯
m_tooltip.AddTool(GetDlgItem(IDC_EDIT_A), TTS_ALWAYSTIP);//當滑鼠指向IDC_EDIT_A控制項顯示提示
//若如是句柄可以用FromHandle(hwnd)替換 GetDlgItem(IDC_EDIT_A)
//文字顏色
m_tooltip.SetTipTextColor(RGB(0,0,255));
//滑鼠指向多久後顯示提示,毫秒
m_tooltip.SetDelayTime(TTDT_INITIAL, 10);
//滑鼠保持指向,提示顯示多久,毫秒
m_tooltip.SetDelayTime(TTDT_AUTOPOP, 30000);
//設定顯示寬度,超長內容自動換行
m_tooltip.SetMaxTipWidth(200);
3、重寫PreTranslateMessage,增加以下內容:
if(m_tooltip.m_hWnd!=NULL)
{
m_tooltip.RelayEvent(pMsg);
}
4、在需要的地方動態更新tip內容
m_tooltip.UpdateTipText(str, FromHandle(hwnd));
6. 請問這段代碼是什麼意思
這個很可能是源代碼作者自己擴展的一個類,VC中本身沒有這個類
這個類的主要作用是讓一個靜態文本控制項顯示的文字變成一個超鏈接
就像很多軟體上看到的一樣
這個功能看著簡單,實現起來還是有點復雜的
好好看看他的cpp文件吧:HyperLink.cpp
7. 關於MFC:滑鼠放在LISTBOX上,把上面顯示的信息懸浮地顯示出來。
首先在對話框的頭文件中加入初始化語句:private:下,加入:CToolTipCtrl m_Mytip;
然後在初始化對話框函數(OnInitDialog)中加入:
m_Mytip.Create(this);
m_Mytip.AddTool( GetDlgItem(IDC_LIST), "你想要添加的提示信息" ); //IDC_BUTTON為你要添加提示信息的LISTBOX的ID
m_Mytip.SetDelayTime(200); //設置延遲
m_Mytip.SetTipTextColor( RGB(0,0,255) ); //設置提示文本的顏色
m_Mytip.SetTipBkColor( RGB(255,255,255)); //設置提示框的背景顏色
m_Mytip.Activate(TRUE); //設置是否啟用提示
然後在類向導中添加PreTranslateMessage消息響應函數
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_MOUSEMOVE /*&& pMsg->hwnd == GetDlgItem(IDC_BUTTON1)->GetSafeHwnd())*/)
m_Mytip.RelayEvent(pMsg);
return CDialog::PreTranslateMessage(pMsg);
}
註:如果要為多個按鈕添加功能提示只需在
m_Mytip.AddTool( GetDlgItem(IDC_LIST), "你想要添加的提示信息" );
的下面再加上類似語句,如
m_Mytip.AddTool( GetDlgItem(IDC_LIST1), "你想要添加的提示信息1" );
m_Mytip.AddTool( GetDlgItem(IDC_LIST2), "你想要添加的提示信息2" );