0
試圖在我的MFC C++應用程序的Windows7中使用CScrollBar
。從CScrollBar獲取所有位置值
我收到的所有消息就好了,有一個處理程序,它看起來是這樣的:
void Dialog::OnHScroll(UINT nSBCode, UINT apos, CScrollBar* pScrollBar)
{
SCROLLINFO si;
si.cbSize = sizeof(si);
si.fMask = SIF_TRACKPOS;
m_slider.GetScrollInfo(&si,SIF_TRACKPOS|SIF_POS|SIF_PAGE);
int nTrackPos = si.nTrackPos; //0 except on TB_THUMBTRACK
int nPos = si.nPos; //0 except on TB_THUMBTRACK
UINT nPage = si.nPage; //seems correct always but I dont need it
我之所以嘗試使用GetScrollInfo
是因爲他們可能會比16位的無功裏面有什麼適合做大提取位置,因此我不能使用傳遞的pos作爲參數。
但是,我的問題是,當拖動欄和接收TB_THUMBTRACK
以及結束TB_ENDTRACK
拖動操作時,我只得到一個有效的位置。如果我點擊滾動條或者在每一端使用箭頭,所有的位置(參數pos,以及SCROLLINFO
結構中除頁面之外的所有內容)將爲0.
有沒有人知道如何獲得所有消息的正確位置?即TB_LINEUP, TB_LINEDOWN
等
謝謝,我是完全錯誤的軌道上,通過CScrollBar文檔挖在那裏我不能」找到有用的東西。 – Vanvid 2013-03-12 08:31:43