• 孙鑫MFC学习笔记4:MFC画图


    1.画线方法

                *1.捕获鼠标按下和弹起消息,获取两个点

                *2.消息响应,画线

    2.在CMainFrame类中的鼠标左键事件得不到响应的原因是CNameView覆盖了CMainFrame

    3.注释宏

     

    4.画线方法

                *1.HDC

                *2.CDC(MFC封装)

                *3.CClientDC(不用显式释放资源)

                *4.CWindowDC(可以画到非客户区)

    5.画线步骤

                *1.获取DC

                *2.MoveTo到原点

                *3.LineTo到目标点

                *4.释放DC

    6.CPen

                构造函数参数:

                            线类型PS_SOLID等

                            宽度

                            颜色

                                        RGB宏,三个参数:红绿蓝颜色值

    7.SelectObject

                添加设备到设备描述表,返回旧的设备指针,DC成员函数

    8.FillRect

                画矩形

    9.CBrush

                画刷,构造函数参数可以是颜色,位图

    10.CBitMap

     

    LoadBitmap:

     

    The LoadBitmap function loads the specified bitmap resource from a module's executable file.

     

    HBITMAP LoadBitmap(

     

        HINSTANCE hInstance,         // handle of application instance

        LPCTSTR lpBitmapName      // address of bitmap resource name

       );     

     

     

    Parameters

     

    hInstance

     

    Identifies the instance of the module whose executable file contains the bitmap to be loaded.

     

    lpBitmapName

     

    Points to a null-terminated string that contains the name of the bitmap resource to be loaded. Alternatively, this parameter can consist of the resource identifier in the low-order word and zero in the high-order word. The MAKEINTRESOURCE macro can be used to create this value. 

     

     

     

    Return Values

     

    If the function succeeds, the return value is the handle of the specified bitmap.

    If the function fails, the return value is NULL.

     

    Remarks

     

    If the bitmap pointed to by the lpBitmapName parameter does not exist or there is insufficient memory to load the bitmap, the function fails.

    An application can use the LoadBitmap function to access the predefined bitmaps used by the Win32 API. To do so, the application must set the hInstance parameter to NULL and the lpBitmapName parameter to one of the following values:

     

    OBM_BTNCORNERS       OBM_OLD_RESTORE

    OBM_BTSIZE     OBM_OLD_RGARROW

    OBM_CHECK     OBM_OLD_UPARROW

    OBM_CHECKBOXES       OBM_OLD_ZOOM

    OBM_CLOSE      OBM_REDUCE

    OBM_COMBO   OBM_REDUCED

    OBM_DNARROW           OBM_RESTORE

    OBM_DNARROWD         OBM_RESTORED

    OBM_DNARROWI          OBM_RGARROW

    OBM_LFARROW OBM_RGARROWD

    OBM_LFARROWD           OBM_RGARROWI

    OBM_LFARROWI            OBM_SIZE

    OBM_MNARROW          OBM_UPARROW

    OBM_OLD_CLOSE          OBM_UPARROWD

    OBM_OLD_DNARROW    OBM_UPARROWI

    OBM_OLD_LFARROW     OBM_ZOOM

    OBM_OLD_REDUCE        OBM_ZOOMD

     

     

    Bitmap names that begin with OBM_OLD represent bitmaps used by Windows versions earlier than 3.0.

    For an application to use any of the OBM_ constants, the constant OEMRESOURCE must be defined before the WINDOWS.H header file is included.

    The application must call the DeleteObject function to delete each bitmap handle returned by the LoadBitmap function.

     

    See Also

     

    CreateBitmap, DeleteObject, LoadCursor, LoadIcon, MAKEINTRESOURCE

     

    11.Rectangle画矩形

    12.GetStockObject可以通过NULL_BRUSH获取透明画刷,使矩形不被覆盖

                GetStockObject返回画刷句柄,通过CBrush::FromHandle转为CBrush对象指针

    13.SetROP2

                设置绘画模式

     

     

    菊子曰 用菊子曰博客,就是爽!
    本文作者:SkyFire QQ:1513008876 E-mail:skyfireitdiy@hotmail.com 转载请保留,谢谢
  • 相关阅读:
    ubuntu分屏终端
    Xcode-5.1.1更改文件盯作者
    Swift——(两)Swift访问元组
    Android Loader使用,屏幕解锁,重复荷载
    医疗信息季节:第二十三届中国国际医疗仪器设备展览会暨研讨会 思考
    UIBarButtonItem 小记边
    L轻松学习inux教程5 知识与学习bash
    Android 教你打造炫酷的ViewPagerIndicator 不仅仅是高仿MIUI
    Android Context 上下文 你必须知道的一切
    Android 自定义控件 优雅实现元素间的分割线 (支持3.0以下)
  • 原文地址:https://www.cnblogs.com/SkyFireITDIY/p/4371589.html
Copyright © 2020-2023  润新知