《vc++深入详解》读书笔记之四

第四章    简单绘图

07-05-21    manday

一,MFC消息映射机制
1,ClassWizard:
视图类窗口始终在框架类窗口之上。所以,所有的操作都只能在视类窗口捕获。
2,消息映射机制:【与消息循环不同!!!】
在每个能处理消息的类中定义一个消息和消息函数静态对照表,即消息映射表。在该表中,消息和消息处理函数的指针是成对出现的。当有消息需要处理时,os只需要查该表就能找到相应的处理函数对其处理。


07-05-23    wednesday

二,绘制线条
1,利用SDK全局函数实现:
获得设备描述表::getDC(m_hWnd),移动到线条起点MoveToEx(),画线LineTo(),释放设备描述表::ReleaseDC(m_hWnd,hdc)。
2,利用MFC的CDC类实现:【该类封装了所有与绘图相关的操作,提供成员m_hDC保存DC句柄】
这里用getDC,ReleaseDC没有::,表示局部函数???yyy【在哪里定义???】
pDC->要用“->”而不是“.”,因为其为指针???yyy
3,利用MFC的CClientDC类实现:【派生于CDC类,不需显式地释放资源】
dc不用“->”而是“.”,因为其是类。还有GetParent()函数。可以划到视类窗口和工具栏
【响应函数在视类中,怎么能响应框架类中的左键点击消息???】
4,利用MFC的CWindowDC类实现:【派生于CDC类,不需显式地释放资源,用GetParent()函数可以划到视类窗口和工具栏,标题栏,菜单栏】用GetDesktopWindow()函数还可以在桌面画线。
【后两个函数怎么划的线不是真正的鼠标控制的位置???】
5,彩色线条
CPen类。
构造GDI对象,用SelectObject函数选入设备表。该函数返回原来的画笔指针。

三,画刷绘图
1,简单画刷CBrush类
2,位图画刷
3,透明画刷用GetStockObject函数获得透明画刷句柄,由句柄转为透明画刷对象。转化函数FromHandle
【CBrush::FromHandle()与CBrush.FromHandle()的区别???】
//静态成员函数和静态成员变量,可以用“类::函数名”的形式直接调用,而无需先定义一个该类的对象!!!【因为静态……属于类本身,在类加载时即为他们分配了空间,所以可以如前所说的来访问,而非静态……属于对象,故必须先对象化后引用。】

四,绘连续线条
WM_MOUSEMOVE的响应函数OnMouseMove
五,绘扇形效果的线条
SetROP2函数。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值