• 大小: 2KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: C/C++
  • 标签: MFC  滑块控件  

资源简介

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

评论

共有 条评论