-
大小: 12.42MB文件类型: .rar金币: 1下载: 0 次发布日期: 2023-06-13
- 语言: 其他
- 标签: 源码 directshow
资源简介
基于directShow,打造全能播放器系列之二——简易播放器的补充 源码
对应博客地址:
http://blog.csdn.net/harvic880925/article/details/7987798#
此博文仅供交流,转载请标明出处,谢谢
代码片段和文件信息
#include “stdafx.h“
#include “NiceSlider.h“
IMPLEMENT_DYNAMIC(CNiceSliderCtrl CSliderCtrl)
BEGIN_MESSAGE_MAP(CNiceSliderCtrl CSliderCtrl)
//{{AFX_MSG_MAP(CNiceSliderCtrl)
ON_WM_LBUTTONDOWN()
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONUP()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CNiceSliderCtrl::OnLButtonDown(UINT nFlags CPoint point)
{
m_bDragging = true;
m_bDragChanged = false;
SetCapture();
SetFocus();
if (SetThumb(point))
{
m_bDragChanged = true;
PostMessageToParent(TB_THUMBTRACK);
}
}
void CNiceSliderCtrl::onmousemove(UINT nFlags CPoint point)
{
if (m_bDragging)
{
if (SetThumb(point))
{
m_bDragChanged = true;
PostMessageToParent(TB_THUMBTRACK);
}
}
else
{
CSliderCtrl::onmousemove(nFlags point);
}
}
void CNiceSliderCtrl::OnLButtonUp(UINT nFlags CPoint point)
{
if(m_bDragging)
{
m_bDragging = false;
::ReleaseCapture();
if (SetThumb(point))
{
PostMessageToParent(TB_THUMBTRACK);
m_bDragChanged = true;
}
if (m_bDragChanged)
{
PostMessageToParent(TB_THUMBPOSITION);
m_bDragChanged = false;
}
}
else
{
CSliderCtrl::OnLButtonUp(nFlags point);
}
}
bool CNiceSliderCtrl::SetThumb(const CPoint& point)
{
const int nMin = GetRangeMin();
const int nMax = GetRangeMax()+1;
CRect rc;
GetChannelRect(rc);
double dPos;
double dCorrectionFactor = 0.0;
if (Getstyle() & TBS_VERT)
{
// note: there is a bug in GetChannelRect it gets the orientation of the rectangle mixed up
dPos = (double)(point.y - rc.left)/(rc.right - rc.left);
}
else
{
dPos = (double)(point.x - rc.left)/(rc.right - rc.left);
}
// This correction factor is needed when you click inbetween tick marks
// so that the thumb will move to the nearest one
dCorrectionFactor = 0.5 *(1-dPos) - 0.5 *dPos;
int nNewPos = (int)(nMin + (nMax-nMin)*dPos + dCorrectionFactor);
const bool bChanged = (nNewPos != GetPos());
if(bChanged)
{
SetPos(nNewPos);
}
return bChanged;
}
void CNiceSliderCtrl::PostMessageToParent(const int nTBCode) const
{
CWnd* pWnd = GetParent();
if(pWnd) pWnd->PostMessage(WM_HSCROLL (WPARAM)((GetPos() << 16) | nTBCode) (LPARAM)GetSafeHwnd());
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 130560 2012-09-17 14:40 Pla
文件 1430216 2012-09-17 14:40 Pla
文件 4041728 2012-09-17 14:40 Pla
文件 8452 2012-09-17 14:40 Pla
文件 67 2012-09-17 14:40 Pla
文件 15374 2012-09-14 10:49 Pla
文件 1196 2012-09-14 10:51 Pla
文件 1260 2012-09-14 10:51 Pla
文件 1120 2012-09-17 14:40 Pla
文件 43336 2012-09-17 14:40 Pla
文件 25034752 2012-09-14 10:49 Pla
文件 23456 2012-09-17 11:01 Pla
文件 110759 2012-09-17 14:40 Pla
文件 466726 2012-09-14 10:49 Pla
文件 1141760 2012-09-17 14:40 Pla
文件 2314240 2012-09-17 14:40 Pla
文件 2249 2010-07-29 09:39 Pla
文件 715 2010-07-29 09:39 Pla
文件 59112 2012-09-17 11:00 Pla
文件 1932 2012-09-14 10:20 Pla
文件 471 2012-09-13 15:25 Pla
文件 5449 2012-09-17 11:00 Pla
文件 5774 2012-09-13 15:08 Pla
文件 1423 2012-09-17 15:34 Pla
文件 19060 2012-09-17 14:40 Pla
文件 2676 2012-09-17 14:40 Pla
文件 2873 2012-09-13 14:32 Pla
....... 21630 2003-07-24 09:52 Pla
文件 362 2012-09-13 14:32 Pla
文件 954 2012-09-14 16:00 Pla
............此处省略14个文件信息
相关资源
- STM32示波器源代码 便携式数字示波器
- STL源码剖析简体中文带目录版本高清
- 时时彩计划自动追投源码.rar
- 从零开始写分布式服务框架 最新版
- 完整OA系统源码,可以二次开发
- stm32IAP远程更新资料包
- SSM+Video.js实现web项目网页看视频代码
- opencv-4.1.0样例图片和视频.zip
- 骆驼源码搭建,带套餐,带EPG.iptv.z
- 人脸识别登录demo源码
- 纯前端代码音乐播放器源码
- 无需积分,OSGi原理与最佳实践完整版
- texlive2019
- JDK
- 魅思MSVOD视频系统V9.6.5高级版网站源码
- 布谷直播源码手机直播源码 v3.1
- 猫力币数字资产交易平台源码.zip
- 图解设计模式高清PDF带目录和源码
- TMS 控件V7.5.2.0 全套内含源码、DEMO及安
- 全套完整Flash游戏编程基础教程和源码
- opencv 2计算机视觉编程手册_中文_+图片
- 工业APP之法规查询App安装包+源码
- 源码+开奖网程序+计划网手机端.zip
-
mavli
nk协议收发源码 - DevExpress12.2.6源码
- 微信小程序源码-合集9
- SpringBoot深入实践pdf及源码
- AE二次开发源码
- ecshop3.6茶叶商城源码
- nextcloud源码包
评论
共有 条评论