当前位置: 首页 > news >正文

网站模板下载后如何使用免费涨1000粉丝网站

网站模板下载后如何使用,免费涨1000粉丝网站,大连知名的seo外包,网站直播怎样做上一篇:MFC界面编程基础(05):利用向导创建MFC以及MFC框架中一些重要函数下一篇:MFC界面编程基础(07):文本编程 关于鼠标事件 根据我们前面学过是知识,用MFC向导生成一个…
上一篇:MFC界面编程基础(05):利用向导创建MFC以及MFC框架中一些重要函数下一篇:MFC界面编程基础(07):文本编程

关于鼠标事件

根据我们前面学过是知识,用MFC向导生成一个单文档视图程序。在我们的主框架类中添加WM_LBUTTONDOWN消息的响应函数,具体操作如下:

在这里插入图片描述

从类视图中找到CMainFrame(继承自CFrameWnd),选择此类然后从属性面板中找到消息按钮(上图中标示2),在消息列表中找到WM_LBUTTONDOWN消息,添加,然后看我们的工程文件中都多了些什么???

  • 第一处:在框架类头文件中添加了鼠标左键消息函数的函数声明
    在这里插入图片描述
  • 第二处:在框架类cpp文件中添加了消息映射宏
    在这里插入图片描述
  • 第三处:在框架列cpp文件中添加了处理鼠标左键消息的函数定义:
    -

根据前边我们学过的知识要完成MFC中的消息映射需要我们手动将这三处依次做一个添加,但是使用MFC的类向导我们很容易就能完成一个消息的添加,之后再对应生成的消息函数中做相应的处理即可。
我们再此OnLButtonDown函数中添加一个MessageBox消息,鼠标左键按下弹出一个提示框,然后执行程序。我们会惊奇的发现程序并未如我们所愿弹出消息框,why?我的世界凌乱了。。。
我们先搁置疑问,按照上述操作在视类中捕获鼠标左键消息并处理,看结果会如何?
在这里插入图片描述

此时弹出了对话框,说明视类捕获道理鼠标左键消息。但是为什么框架类捕获不到呢?我们前边在将文档/视图结构的时候说过,框架窗口是视窗口的父窗口,那么视类窗口就应该始终覆盖在框架类窗口之上。就好比框架窗口是一面墙,视类窗口就是墙纸,它始终挡在这面墙前边。也就是说,所有操作,包括鼠标单击、鼠标移动等操作都只能有视类窗口捕获,这也是框架类窗口为什么收不到鼠标左键消息的原因。

绘制线条

我们可以利用MFC提供的CClientDC类来实现这一功能,这个类跟CPaintDC一样,也派生于CDC类。CClientDC是窗口客户区的设备描述环境,它应用在WM_PAINT消息之外的消息处理函数中。我们只需要定义一个CClientDC对象,然后就可以利用该对象提供的函数进行绘图操作了。CClientDC对象构造时接收一个参数,即:要进行图像绘制的窗口指针对象。
CClientDC提供的划线函数:

  • 绘制线条的起始点:MoveTo(CPoint p) p – 起始点坐标
  • 绘制一条到指定点的线:LineTo(CPoint p) p – 终点坐标

在程序的视图窗口用鼠标画一条线:
在视类中定义一CPoint类型成员变量m_oldPoint,添加鼠标左键按下和弹起的消息处理函数,记录鼠标左键按下时的坐标,在鼠标弹起时,通过两个坐标点将线画到视类窗口屏幕区域。

在这里插入图片描述

绘制彩色线条

我们实现的画线功能,绘制的都是黑色的线条。这是因为设备描述表中有一个默认的黑色画笔。如果想要绘制其他颜色的线条,首先需要创建一个特定颜色的画笔,然后将此画笔选入设备描述表中,接下俩绘制的线条的颜色就由这个新画笔决定了。
我们可以通过MFC提供的类CPen来创建画笔对象。

CPen(int nPenStyle,int nWidth,COLORREF crColor);

第一个参数:指定笔的线型(实线、点线、虚线等)
第二个参数:线的宽度
第三个参数:颜色,是一个RGB宏
COLORREF RGB(BYTE bRed,BYTE bGreen,BYTE bBlue)

当构建一个GDI(图形设备接口)对象后,该对象并不会马上生效,必须选入设备描述表,它才会在以后的操作中生效。可以使用SelectObject函数把GDI对象选入设备描述表中,并且该函数会返回指向先前备选对象的指针,这主要是为了完成当前绘制之后再次利用SelectObject把先前的GDI对象选入设备描述表,以便使其恢复到先前状态。

在这里插入图片描述

绘制连续线条

如果我们想让程序实现Windows画图板那样的画线功能,应如何实现?
为了绘制连续的线条,首先需要得到线条的起点,前面我们已经实现了。然后需要捕获鼠标移动过程中的每个点,这可以通过捕获鼠标移动消息(WM_MOUSEMOVE)来实现。在此消息相应函数中,在依次捕获的各个点之间绘制一条非常短的线段,从而就可以绘制出一条连续的线条。

思路:

  • 需要一变量来标识鼠标左键是否按下这一状态
  • 在鼠标移动消息响应函数中,如果鼠标是按下状态就开始绘图,弹起之后停止绘图。

在视类头文件中添加私有成员变量:
BOOL m_bDraw;
在视类构造函数中将此变量初始化为FALSE
m_bDraw = FALSE;
当鼠标左键按下去时,在视类的OnLButtonDown函数中将此变量初始化为真
m_bDraw = TRUE;
当鼠标左键弹起,在视类的OnLButtonUp函数中将此变量初始化为假
m_bDrae = FALSE;
在视类的OnMouseMove函数中完成线段的绘制
在这里插入图片描述

CDC类中封装的绘图函数还有很多,直接通过CDC类对象调用直接使用即可,可以通过CPen来调节样式,图形函数的参数可参考具体的API使用文档。
在这里插入图片描述

使用画刷绘图

在默认情况下由Rectangle、Ellipse以及其它CDC输出函数画出的封闭图形填充着白色像素点。通过创建GDI画刷并在画图之前将它选入设备描述表可以改变图形的填充颜色。MFC的CBrush类封装了GDI画刷。
画刷有三种基本类型:单色,带阴影线,带图案。单色画刷填充的是单色,阴影线画刷采用预先定义好的交叉线图案填充图形,这中图案有六种,图案画刷用位图来填充图形。
CBrush类为每种画刷提供了一个构造函数。

  • 单色:CBrush( COLORREF crColor );
    crColor 指定画刷的前景色(RGB方式)。
  • 阴影:CBrush( int nIndex, COLORREF crColor );
    nIndex 指定画刷阴影线采用的风格,取值如下:
  • HS_BDIAGONAL 45度的向下影线(从左到右)
  • HS_CROSS 水平和垂直方向以网格线作出阴影
  • HS_DIAGCROSS 45度的网格线阴影
  • HS_FDIAGONAL 45度的向上阴影线(从左到右)
  • HS_HORIZONTAL 水平的阴影线
  • HS_VERTICAL 垂直的阴影线
    creColor指定的阴影线的颜色。
  • 图案:CBrush( CBitmap*pBitmap );
    pBitmap 指向CBitmap对象的指针,该对象指定了画刷要绘制的位图。

说明:

类CBrush一共有四个覆盖的构造函数。不带参数的那个构造函数构造一个未初始化的CBrush对象,在使用该对象之前需要另外初始化。
如果使用了不带参数的那个构造函数,则必须用CreateSolidBrush、CreateHatchBrush、CreateBrushIndirect、CreatePatternBrush或CreateDIBPatternBrush来初始化返回的CBrush对象。如果使用了带参数的构造函数,则不再需要初始化CBrush对象。带参数的构造函数在出错时会产生一个异常,而不带参数的构造函数总是成功返回。
只带有一个参数COLORREF的构造函数用指定的颜色构造一个实线型的画刷。颜色是一个RGB值,可以用WINDOWS.H中的宏RGB构造出来。
带两个参数的构造函数构造一个阴影线型的画刷,参数:nIndex指定了阴影线模式的指数(index)。参数:crColor指定了画刷的颜色。
带有一个CBitmap型参数的构造函数构造一个模式化的画刷。参数指定一个位图。该位图应该是已经用CBitmap::CreateBitmap、CBitmap::CreateBitmapIndirect、CBitmap::LoadBitmap或CBitmap::CreateCompatiableBitmap建立或加载的位图。填充模式下的位图的最小尺寸为8像素×8像素。

上一篇:MFC界面编程基础(05):利用向导创建MFC以及MFC框架中一些重要函数下一篇:MFC界面编程基础(07):文本编程
http://www.hrbkazy.com/news/12307.html

相关文章:

  • 做电影网站怎样赚钱小广告怎么能弄干净
  • wordpress 置顶厦门seo网站排名优化
  • 新塘17网站一起做网店官网宁波seo
  • 郑州建设网站定制最佳磁力吧ciliba搜索引擎
  • 网站开发过程中的方法常州百度搜索优化
  • 网站建设毕业设计选题今日重大国际新闻军事
  • 推广网站软文网络营销产品的首选产品
  • 做网站英语老师的简历百度竞价官网
  • 网站分析怎么做保定百度推广联系电话
  • 廊坊网站制作如何在百度提交自己的网站
  • 上海传媒公司介绍百度seo关键词优化推荐
  • 北京建网站的公司网络营销带来的效果
  • 建设投注网站怎么交换友情链接
  • 企业宣传手册封面模板seo怎么优化排名
  • 征婚交友网站系统模板那个好技能培训机构排名前十
  • 企业网站建设存在的问题直通车优化推广
  • 网站文字不能复制怎么做加盟教育培训哪个好
  • 低价网站建设方案seo专员工资待遇
  • 模板建站什么意思买卖平台
  • 武汉教育网站建设优化域名怎么查
  • 外贸企业网站建设公司价格1688官网
  • 赣州网站建设-赣州做网站地推项目发布平台
  • 婚纱摄影网站设计理念深圳网站关键词优化推广
  • 百度能做网站建设吗seo高效优化
  • 网站项目报价绍兴seo管理
  • 杭州有哪些做网站的公司最近最新的新闻
  • 怎么自己做卡盟网站友点企业网站管理系统
  • 写作网站制作中国免费网站服务器主机域名
  • web前端做网站项目赚钱国外独立网站如何建站
  • 那些网站招聘在家里做的客服大冶seo网站优化排名推荐