zoukankan      html  css  js  c++  java
  • VC++学习(10):绘图控制

    1.    画图:

       a.创建四个菜单,为其添加消息响应;

       b.View中添加m_DrawType,保存绘画类型;

       c.增加成员变量,m_PtOrigin,当按下鼠标左键时,保存此点;

       d.OnLButtonUp中画点,线,矩形,椭圆,别忘记设置成透明画刷

    2.    为其添加一个设置对话框(线型和线宽)

       a.创建对话框,为其创建一个新类关联它;

       b.为其中的线宽关联成员变量;

       c.View中增加一个菜单,响应新的对话框;

    d.添加线型选项设置,将其Group属性选中,并为单选按纽关联成员变量。在view中增加一个线型变量m_nLineStyle

    3     .添加一个颜色对话框

        a.实例化一个CColorDialog

        b.调用DoModal方法

    4.    添加字体对话框,将选择的字体在View中显示出来。

        a.实例化一个对象;

        b.View添加一个字体成员变量,得到用户选择的字体。

        c.调用Invadate()发出重绘消息;

        d.再次注意一个对象只能创建一次,故要再次创建,必须将原告的删除!

    5.    为设置对话框增加示例功能。

    a.当控件内容改变时,发出En_change消息。而Radio按纽则为Clicked。需先UpdateData()。另外还需要ScreenToClient(&rect)

    6.    改变对话框的背景色和控件颜色。

         每个控件被绘制时都发出WM_CTlColor消息,

    7.    如何改变OK按纽的字体和背景?

     OK按纽

     a.创建一个新类,CTestBtn,基类为CButton

     b.在类中增加虚函数,DrawItem,添加代码。

     c.OK按纽关联成员变量。类型为CTestBtn,注意将OK按纽的OwnerDraw特性选中。

     Cancel按纽

     用新类来改变。

     a.加入新文件。

     b.Cancel关联一个成员变量,类型为CSXBtn;

     c.调用CSXBtn的方法。

     Cancel2按纽

     a.方法同上。

    8.    在窗口中贴图,4个步骤

         1、创建位图

    CBitmap bitmap;

    bitmap.LoadBitmap(IDB_BITMAP1);

    2 创建兼容DC

    CDC dcCompatible;

    dcCompatible.CreateCompatibleDC(pDC);

    3 将位图选到兼容DC

    dcCompatible.SelectObject(&bitmap);

    4 将兼容DC中的位图贴到当前DC中。在WM_EraseBkgnd()中调用,但不能再调用基类的擦除背景函数。也可以在OnDraw函数中完成,但效率低,图像会闪烁,因为它先擦除背景,慢。

    pDC->BitBlt(rect.left,rect.top,rect.Width(),

    rect.Height(),&dcCompatible,0,0,SRCCOPY);

     

     
  • 相关阅读:
    layDate关闭方法
    iOS Crash日志符号化
    图像压缩工具ImageOptim介绍
    UITextField设置光标位置
    Detect backspace in UITextField
    scrollsToTop小结
    查看UIWindows的视图层次
    弹出框适配总结
    关于IOS获取keyBoard键盘是否弹出
    UItableViewCell滑动删除时,调整cell子视图的位置大小
  • 原文地址:https://www.cnblogs.com/forlina/p/2119761.html
Copyright © 2011-2022 走看看