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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [WPF]用HtmlTextBlock實現訊息對話方塊的內容高亮和跳轉HTMLBloC
- VC 對話方塊背景顏色、控制元件顏色控制元件
- 訊息對話方塊 confirm() prompt()
- SAP Spartacus B2B 頁面 Disable Confirmation 對話方塊的顯示原理
- 實現element-ui對話方塊可拖拽功能UI
- Dialog對話方塊
- 一對一直播系統原始碼,按住對話方塊右滑顯示刪除原始碼
- 有關Dialog類的相關資訊【對話方塊的介紹】
- 登入對話方塊
- 規定對話方塊
- React中的模式對話方塊React模式
- 在c++MFC下用PCL顯示操作點雲檔案 MFC對話方塊顯示操作PCL點雲C++
- 直播平臺原始碼,針對訊息對話方塊的實際應用效果原始碼
- DialogPane對話方塊佈局
- Flutter Widgets 對話方塊-DialogFlutter
- flutter demo (四):對話方塊Flutter
- VUE:點選開啟的對話方塊外面時,對話方塊總是被關閉Vue
- windows10系統開機顯示器出現Input not supported錯誤對話方塊怎麼解決Windows
- 直播原始碼網站,實現對話方塊的左滑動刪除原始碼網站
- java Swing詢問對話方塊Java
- 在 Flutter 使用 GetX 對話方塊Flutter
- Qt 對話方塊新增工具欄QT
- 0x7_對話方塊
- jQuery+bootstrap實現美化警告/確認/提示對話方塊外掛jQueryboot
- JavaScript入門(4)確認(confirm訊息對話方塊)JavaScript
- JavaFX 如何使用內建的對話方塊Java
- [WPF]動手寫一個簡單的訊息對話方塊
- 直播視訊app原始碼,底部彈出的列表對話方塊APP原始碼
- 短視訊程式開發,動態實現密碼、核取方塊等顯示與隱藏密碼
- 如何自學qt(4)——對話方塊QT
- 實現對gridview刪除行時彈出確認對話方塊的一種簡單方法View
- 直播平臺原始碼,簡單實現 彈出確認 取消對話方塊原始碼
- win10電腦圖示顯示白色方塊怎麼辦?win10桌面圖示顯示白色方塊的解決方法Win10
- flutter佈局-7-About對話方塊Flutter
- win10系統ie登入網站不顯示網站登入對話方塊怎麼辦Win10網站
- 論資訊顯示對我生活的影響
- w10系統對話方塊這麼變小_w10系統對話方塊如何縮小
- 【Android初級】如何實現一個具有選擇功能的對話方塊效果(附原始碼)Android原始碼
- 實戰PyQt5: 058-字型選擇對話方塊QFontDialogQT