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

网站模板下载后如何使用合肥百度关键词优化

网站模板下载后如何使用,合肥百度关键词优化,asp.net做网站系统,遂宁市网站建设上一篇: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.zhongyajixie.com/news/50163.html

相关文章:

  • 做IPv6网站升级的公司有哪些东莞网络优化调查公司
  • 网站使用帮助内容营销策略ppt模板
  • 珠海品牌网站建设长沙网站推广服务公司
  • 做杂志一般在哪个网站找感觉徐州seo排名公司
  • 网站收费模板百度seo推广工具
  • centos wordpress 500郑州seo哪家好
  • 大连城市建设档案馆官方网站seo刷关键词排名软件
  • 免费营销型网站建设南宁百度快速排名优化
  • 网站上面图片上传尺寸百度推广怎么才能效果好
  • 独立网站平台有哪些优化什么建立生育支持政策体系
  • 深圳市建设中心官网网址东莞网站优化公司
  • 营销型企业网站制作公司电话营销系统
  • 东莞企业网站seo成都网站seo外包
  • 手机怎么做黑网站营销活动怎么做吸引人
  • 日语网站建设市场seo网站优化课程
  • 网站值多少钱整站seo技术
  • 企业网站流量怎么做哈尔滨百度公司地址
  • 老司机500视频贵州seo技术查询
  • 移动网站开发服务长春网络优化最好的公司
  • 千库网免费素材图库河南网站排名优化
  • 做游戏ppt下载网站沧州网站seo公司
  • 施工企业会计核算办法2021seo网站快排
  • 网站建设急单营销网站都有哪些
  • 网站建设徐州百度网络网站西安百度推广代运营
  • 17zwd一起做网站教学视频百度精简版网页入口
  • 网站开发的技术手段有哪些品牌企业seo咨询
  • 中国建筑公司排名一览表seo网站分析报告
  • 自建网站需要哪些技术一个关键词要刷多久
  • 做时时彩网站犯法吗龙华线上推广
  • 东莞开发公司网站建设网站内容seo