大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> 如何实现一个橡皮区矩形

如何实现一个橡皮区矩形

时间: 2021-07-31 作者:daque

crecttracker是一个很有效的类,不妨经过挪用crecttracker::trackrubberband 相应wm_lbuttondown动静来创造一个橡皮区矩形。下例表白运用crecttracker挪动和重置视窗中的蓝色长圆的巨细是很简单的工作。开始,在文献档中证明一个crecttracker数据分子:class csampleview : public cview{…public :crecttracker m_tracker…}其次,在文书档案类的结构因变量中初始化crecttracker 东西:csampledoc:: csampledoc (){//initialize tracker position, size and style.m_tracker.m_rect.setrect (0, 0, 10, 10)m_tracker.m_nstyle=crecttracker:: resizeinside | crecttracker ::dottedline}而后,在ondraw因变量中画长圆和形迹矩形:void csampleview:: ondraw (cdc* pdc){csampledoc* pdoc=getdocument ()assert_valid (pdoc)//select blue brush into device context.cbrush brush (rgb (0, 0, 255))cbrush* poldbrush=pdc->selectobject (&brush)//draw ellipse in tracking rectangle.crect rcellipsepdoc->m_tracker.gettruerect (rcellipse)pdc->ellipse (rcellipse)//draw tracking rectangle.pdoc->m_tracker.draw (pdc)//select blue brush out of device context.pdc->selectobject (poldbrush)}结果,运用classwizard处置wm_lbuttondown动静,并减少下述代码。该段代码按照鼠标击键情景不妨拖放、挪动大概重置长圆的巨细。void csampleview::onlbuttondown (uint nflags, cpoint point){//get pointer to document.csampledoc* pdoc=getdocument ()assert_valid (pdoc)//if clicked on ellipse, drag or resize it.otherwise create a//rubber-band rectangle nd create a new ellipse.bool bresult=pdoc->m_tracker.hittest (point)!= crecttracker::hitnothing//tracker rectangle changed so update views.if (bresult){pdoc->m_tracker.track (this,point,true)pdoc->setmodifiedflag ()pdoc->updateallviews (null)}elsepdoc->m-tracker.trackrubberband(this,point,true)cview:: onlbuttondown (nflags,point)} 

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.