資源簡介
MFC中的滑塊CSliderCtrl類不能準確定位到鼠標點擊的位置,將MySlider.h和MySlider.cpp包含至項目中,用類MySlider來定義滑塊變量,鼠標左鍵點擊滑塊時,滑塊能準確定位且不發生漂移。之前上傳的那個在暫停狀態下點擊滑塊時,滑塊在總是要先漂移到其他位置后才能定位到鼠標左鍵點擊的位置,本來想將之前上傳的那個刪除的,但發現刪不了,就重新上傳了這個。

代碼片段和文件信息
//?MySlider.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“MySlider.h“
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//?CMySlider
CMySlider::CMySlider()
{
m_iLength?=?0;
m_iCurrentPos?=?0;
}
CMySlider::~CMySlider()
{
}
BEGIN_MESSAGE_MAP(CMySlider?CSliderCtrl)
//{{AFX_MSG_MAP(CMySlider)
ON_WM_LBUTTONDOWN()
ON_WM_CREATE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//?CMySlider?message?handlers
void?CMySlider::OnLButtonDown(UINT?nFlags?CPoint?point)?
{
//?TODO:?Add?your?message?handler?code?here?and/or?call?default
CSliderCtrl::OnLButtonDown(nFlags?point);??
CRect???rectClientrectChannel;???
GetClientRect(rectClient);???
GetChannelRect(rectChannel);???
int?nMax?=?0;??
int?nMin?=?0;??
GetRange(nMinnMax);??
int?nPos?=?????
(nMax?-?nMin)*(point.x?-?rectClient.left?-?rectChannel.left)/(rectChannel.right?-?rectChannel.left);???
SetPos(nPos);?
CSliderCtrl::OnLButtonDown(nFlags?point);
}
int?CMySlider::OnCreate(LPCREATESTRUCT?lpCreateStruct)?
{
if?(CSliderCtrl::OnCreate(lpCreateStruct)?==?-1)
return?-1;
//?TODO:?Add?your?specialized?creation?code?here
// SetRange(0?500);
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1434??2014-09-11?21:37??MySlider.cpp
?????文件????????1247??2009-04-19?10:54??MySlider.h
?????文件????????1063??2014-11-12?17:02??OnHScroll.cpp
評論
共有 條評論