MFC_9.27_根据鼠标拖动速度移动图片

本文介绍如何在MFC应用程序中,通过监测鼠标拖动的速度,实时调整图片移动的效果,实现更流畅的交互体验。详细讲解了相关事件处理和速度计算方法。
摘要由CSDN通过智能技术生成

MFC_9.27_根据鼠标拖动速度移动图片

#include "StdAfx.h"
#include "Client.h"
#include "MainFrm.h"
#include <math.h>
#include "KlineMiddleView.h"

IMPLEMENT_DYNCREATE(CKlineMiddleView , CView)

const int maxNum = 300; //创建结构体实例的个数

int m_Wheel=100;
int px,py,pxf,pxy = 0;
int ScreenHeight,ScreenWidth;
float KWidth;//每一个小竖条的宽度

int maxh = 0;
int minh = 100000;
int newh = 0;//K线高低放缩需要的参数

int WNumber = 100;//一共需要画出的个数
int WNS = 200; //画图开始的位置;
int WNF = maxNum; //结束的位置
float Xplus=0; //每次拖动重绘左右端的加减变量

int flag=1; //是否画十字线
int LDx=0,LDy=0; //辅助判断单击事件
bool LBDW=false; //是否处于鼠标按左键且拖动的状态

CString XlineR;//十字线右端小白框里内容
CString XlineB;//十字线下端小白框里内容

CKlineMiddleView::CKlineMiddleView(void){
    }
CKlineMiddleView::~CKlineMiddleView(void){
    }                                                                                                                                                                                                                                                                                                                                   
void CKlineMiddleView::OnDraw(CDC*)
{
    
	// TODO: 在此添加专用代码和/或调用基类
	this->KlineDraw();
	SetFocus();
}

// KlineLeftView.cpp : 实现文件

BEGIN_MESSAGE_MAP(CKlineMiddleView, CView)
	ON_WM_MOUSEWHEEL()
	ON_WM_LBUTTONDOWN()
	ON_WM_CREATE()
	ON_WM_MOUSEMOVE()
	ON_WM_LBUTTONUP()
END_MESSAGE_MAP()

int CKlineMiddleView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;

	CClientDoc* pDoc = (CClientDoc*)GetDocument();
	pDoc->m_DataKLine=new KLINEDATA[maxNum];
	for(int i=0;i<maxNum;i++)
	{
    
		pDoc->m_DataKLine[i].KOpenPrice = (sin((double)i*0.05)+2)*1500 + rand()%3000 - 1000;
		pDoc->m_DataKLine[i].KClosePrice = (sin((double)i*0.05)+2)*1500 + rand()%3000 - 1000;
		
		pDoc->m_DataKLine[i].KHighestPrice = max(pDoc->m_DataKLine[i].KOpenPrice,pDoc->m_DataKLine[i].KClosePrice)*(1+(double)(rand()%20)/100);
		pDoc->m_DataKLine[i].KLowestPrice = min(pDoc->m_DataKLine[i].KOpenPrice,pDoc->m_DataKLine[i].KClosePrice)*(1-(double)(rand()%20)/100);
	}
	for(int i=0;i<50;i++)
	{
    
		int xWhite = rand()%maxNum;
		pDoc->m_DataKLine[xWhite].KClosePrice = pDoc->m_DataKLine[xWhite].KOpenPrice;
		pDoc->m_DataKLine[xWhite].KHighestPrice = max(pDoc->m_DataKLine[xWhite].KOpenPrice,pDoc->m_DataKLine[xWhite].KClosePrice)*(1+(double)(rand()%20)/100);
		pDoc->m_DataKLine[xWhite].KLowestPrice = min(pDoc->m_DataKLine[x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值