zoukankan      html  css  js  c++  java
  • 孙鑫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 转载请保留,谢谢
  • 相关阅读:
    在Window上Vim包的选择
    如何在apache官网下载将将jar包
    hdu1870
    hdu1710(Binary Tree Traversals)
    poj 3252 Round Numbers 【推导·排列组合】
    3905
    Find them, Catch them
    Argus
    Team Queue
    Terrible Sets
  • 原文地址:https://www.cnblogs.com/SkyFireITDIY/p/4371589.html
Copyright © 2011-2022 走看看