午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

slider控件移動滑塊,動態(tài)的顯示tooltip方法!

 jtll521 2012-04-24

第一種方法。

.h  文件

CSliderCtrl m_Slider;
CToolTipCtrl m_tooltip;
afx_msg BOOL OnToolTipNotify(UINT id,NMHDR *pNMHDR,LRESULT *pResult);

.cpp

 

BEGIN_MESSAGE_MAP(CCToolTipDlg, CDialog)

 

ON_NOTIFY_EX(TTN_NEEDTEXT,0,OnToolTipNotify) //添加消息

 

END_MESSAGE_MAP()

 

OnInitDialog()

m_Slider.SetRange(0,100);
 m_Slider.SetPos(50);
 m_tooltip.Create(GetDlgItem(IDC_SLIDER1));

m_tooltip.AddTool(GetDlgItem(IDC_SLIDER1), LPSTR_TEXTCALLBACK); //注釋:紅色表示tip內(nèi)容可以動態(tài)改變?。?/span>

 

PreTranslateMessage(MSG* pMsg)

m_tooltip.RelayEvent(pMsg);  
 return CDialog::PreTranslateMessage(pMsg);

 

OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) //響應(yīng)滑塊拖動跟新

 CSliderCtrl* pSlider=(CSliderCtrl*)pScrollBar;
 int pos=pSlider->GetPos();
 if (pScrollBar == (CScrollBar*)GetDlgItem(IDC_SLIDER1))
 {

m_tooltip.Update();//更新tip

CDialog::OnHScroll(nSBCode, nPos, pScrollBar);

 

BOOL CCToolTipDlg::OnToolTipNotify(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==IDC_SLIDER1)//如果現(xiàn)在這個ID是你要顯示Tip的控件 
        { 
             CString str;
            str.Format(_T(
"%d"),m_Slider.GetPos());
            wcscpy(pTTT
->lpszText, str);
            
return TRUE; 
        } 
    }
    
return FALSE; 
 

第二種方法。

.h  文件

CSliderCtrl m_Slider;
CToolTipCtrl m_tooltip;

afx_msg void OnNMCustomdrawSlider1(NMHDR *pNMHDR, LRESULT *pResult); //響應(yīng)slider的自繪消息

.cpp

BEGIN_MESSAGE_MAP(CCToolTipDlg, CDialog)

 

ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER1, &CCToolTipDlg::OnNMCustomdrawSlider1) //添加消息

 

END_MESSAGE_MAP()

 

BOOL   CCToolTipDlg::OnInitDialog 
 
        m_Slider.SetRange(0,100); 
        m_Slider.SetPos(50); 
        m_tooltip.Create(this);   
        m_tooltip.AddTool(GetDlgItem(IDC_SLIDER1),   TTS_ALWAYSTIP);

}

PreTranslateMessage(MSG* pMsg)

m_tooltip.RelayEvent(pMsg);  
 return CDialog::PreTranslateMessage(pMsg);

 

OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) //響應(yīng)滑塊拖動跟新

 CSliderCtrl* pSlider=(CSliderCtrl*)pScrollBar;
 int pos=pSlider->GetPos();
 if (pScrollBar == (CScrollBar*)GetDlgItem(IDC_SLIDER1))
 {

m_tooltip.Update();//更新tip

 

OnCustomdrawSlider(NMHDR*   pNMHDR,   LRESULT*   pResult)   
{ 
CString   str; 

str.Format( "%d ",   m_Slider.GetPos()); 
m_tooltip.UpdateTipText(str,     GetDlgItem(IDC_SLIDER1)); 

*pResult   =   0; 
} 

到此這兩種方法都是可以實(shí)現(xiàn)。。拖動滑塊并動態(tài)顯示tip。。大家可以看暴風(fēng)影音的聲音控制滑塊就明白了,這個是一樣的效果。。

 

大家有疑問可以留言~~歡迎交流??!

CDialog::OnHScroll(nSBCode, nPos, pScrollBar);

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多