VC實現對話方塊上資訊的顯示 (轉)
VC實現對話方塊上資訊的顯示
利用 VC的AppWizard,可以很容易地實現工具條和選單項的ToolTip,或在狀態條上顯示幫助資訊,但要在對話方塊的上顯示ToolTip和在狀態條上顯示控制元件資訊並不容易實現。現在,我們用VC中的WM_SETCURSOR 與TTN_NEEDTEXT訊息就可達到目的。具體操作如下:一、利用 VC的 MFC AppWizard 生成一個 SDI 或 MDI 的應用
二、編輯對話方塊控制元件的字串資源
例如:IDC_BUTTON1 = “This is 肖天鵬的第一自制按鈕n天鵬",
其中字串“This is肖天鵬的第一自制按鈕“將在滑鼠移到控制元件上時顯示在狀態條上,字串“天鵬"將作為 ToolT顯示。
三、建立訊息對映
在對話方塊的頭 (*.H) 中
加入以下程式碼:
protected:
void SetStatusText(UINT nID=0);
//{{AFX_MSG(CFileOp1)
afx_msg void OnDestroy();
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
//}}AFX_MSG
afx_msg BOOL OnTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
DECLARE_MESSAGE_MAP()
在對話方塊的實現檔案 (*.CPP) 中加入以下程式碼:
BEGIN_MESSAGE_MAP(CFileOp1, CDialog)
//{{AFX_MSG_MAP(CFileOp1)
ON_WM_DESTROY()
ON_WM_SETCURSOR()
//}}AFX_MSG_MAP
ON_NOTIFY_EX(TTN_NEEDTEXT,0,OnTipNotvify)
END_MESSAGE_MAP()
四、編輯訊息處理
BOOL CFileOp1::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{// TODO: Add your message handler code here and/or call default
if(pWnd==this)
SetStatusText();
else
{TOOLTIPTEXT m_psttt;
m_psttt.hdr.hwndFrom=m_hWnd;
m_psttt.hdr.idFrom=pWnd->GetDlgCtrlID();
m_psttt.hdr.code=TTN_NEEDTEXT;
m_psttt.uFlags= TTF_IDISHWND;
SetStatusText(pWnd->GetDlgCtrlID());
this->SendMessage(WM_NOTIFY,m_psttt.hdr.idFrom,(LPARAM)&m_psttt); }
return CDialog::OnSetCursor(pWnd, nHitTest, message);}
void CFileOp1::OnDestroy()
{SetStatusText();
CDialog::OnDestroy();}
void CFileOp1::SetStatusText(UINT nID)
{if(nID==0)
nID=AFX_IDS_IDLEMESSAGE;
CWnd *pWnd=AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR);
if(pWnd)
{AfxGetMainWnd()->SendMessage(WM_SETMESS?
AGESTRING ,nID);
pWnd->SendMessage(WM_IDLEUPDATECMDUI);
pWnd->UpdateWindow();}}
BOOL CFileOp1::OnTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
{ TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
UINT nID =pNMHDR->idFrom;
if (pTTT->uFlags & TTF_IDISHWND)
{ nID = ::GetDlgCtrlID((HWND)nID);
if (nID)
{ TCHAR szFullText[256];
CString StrTipText;
AfxLoadString(nID,szFullText);
AfxExtractSubString(StrTipText,szFullText,1,′n′);
if(!StrTipText.IsEmpty())
strcpy(pTTT->lpszText,StrTipText);
pTTT->hinst = AfxGetReHandle();
return(TRUE); } }
return(FALSE);}
五、將該對話方塊作為一個 SDI 或 MDI應用程式的主的子視窗,生成這樣一個對話方塊後,當你把滑鼠移到某個控制元件 ( 必須有相應的字串資源 )上時,就會出現該控制元件的 ToolTip和狀態條資訊。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-987984/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 重新顯示 Windows 98 歡迎對話方塊(轉)Windows
- 顯示對話方塊,同時半透明顯示背景Activity
- 如何讓win32對話方塊居中顯示Win32
- 如何在 Bash Shell 指令碼中顯示對話方塊指令碼
- Qt標準對話方塊實現QT
- 資料夾選擇對話方塊 JS實現(轉)JS
- jQuery模擬實現聊天對話方塊jQuery
- 在VC中呼叫WORD(顯示,修改,存檔,執行宏)之三。呼叫word的各種對話方塊翻頁等。 (轉)
- VC 對話方塊背景顏色、控制元件顏色控制元件
- 實現element-ui對話方塊可拖拽功能UI
- 如何在mfc對話方塊中新增一個顯示網頁的視窗 .網頁
- VC++ 程 序 中 用 對 話 框 的 形 式 顯 示HTML 文 件 (轉)C++HTML
- 對話方塊背景色的設定 (轉)
- c#中的模態對話方塊和非模態對話方塊C#
- 對話方塊中對成批控制元件的操作 (轉)控制元件
- SAP Spartacus B2B 頁面 Disable Confirmation 對話方塊的顯示原理
- 1分鐘實現Autodesk Vault登入對話方塊
- 一對一直播系統原始碼,按住對話方塊右滑顯示刪除原始碼
- 在VC++6.0開發中實現全屏顯示 (轉)C++
- 對話方塊函式函式
- FineUIMvc隨筆(7)擴充套件通知對話方塊(顯示多個不重疊)UIMVC套件
- JavaScript練習題目(3)點選按鈕顯示確認對話方塊JavaScript
- React中的模式對話方塊React模式
- 在c++MFC下用PCL顯示操作點雲檔案 MFC對話方塊顯示操作PCL點雲C++
- [MFC]選擇目錄對話方塊和選擇檔案對話方塊
- 進一步學習對話方塊(轉)
- flutter demo (四):對話方塊Flutter
- Javascript檔案對話方塊JavaScript
- 一個Flex 對話方塊的坑Flex
- javascript中的彈出對話方塊JavaScript
- windows10系統開機顯示器出現Input not supported錯誤對話方塊怎麼解決Windows
- InstallShield自定義對話方塊模板程式碼(轉)
- InstallShield自定義對話方塊淺談(三) (轉)
- InstallShield自定義對話方塊淺談(四) (轉)
- InstallShield自定義對話方塊淺談(五) (轉)
- 直播原始碼網站,實現對話方塊的左滑動刪除原始碼網站
- 原生js實現的點選彈出螢幕居中對話方塊效果JS
- 實現qq ipad客戶端的對話方塊平滑移動的效果iPad客戶端