CDC
CPaintDC
CBitmap
这些是干什么的,有什么连带关系吗
 我画图,是把图像画到哪了,(是不是CDC上?),然后我怎样将画的图放到我指定的控件(比如:静态文本框)上啊
我不知道我是否说明白了,感觉自己都没说明白,不过还是希望大家帮帮我啊

解决方案 »

  1.   

    CPaintDC 是继承自CDC
    如果定义了CDC的对象
    CDC dcMem;
    必须创建出来
    dcMem.CreateCompatibleDC(NULL);
    然后创建CBitmap对象
    CBitmap bmp;
    bmp.CreateCompatibleBitmap(NULL, 0, 0);
    把bmp选进DC,方可使用DC
    dcMem.SelectObject(&bmp);
    现在才可以使用DC去画
      

  2.   

    CDC
    CPaintDC
    是绘图的类;
    CBitmap
    是处理位图的类。
      

  3.   

    CPaintDC 是继承自CDC
    如果定义了CDC的对象
    CDC dcMem;
    必须创建出来
    dcMem.CreateCompatibleDC(NULL);
    然后创建CBitmap对象
    CBitmap bmp;
    bmp.CreateCompatibleBitmap(NULL, 0, 0);
    把bmp选进DC,方可使用DC
    dcMem.SelectObject(&bmp);
    现在才可以使用DC去画------------------------------------------------------------------------------------
    谢谢你那么用DC去画,去画到哪了(是bmp吗)?
    然后我想将图形显示在指定的控件上,应该怎么做?
      

  4.   

    画在dc的客户区在指定的控件上画:重载控件,然后在DrowItem上画
      

  5.   

    如果你想画在CStatic控件上.可以用ouyh12345() 的方法.然后在DrawItem这样做.
    void C3dTextButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
    {
    // TODO: Add your code to draw the specified item
    CDC* pDC=CDC::FromHandle(lpDrawItemStruct->hDC);
    ASSERT_VALID(pDC);
    CRect rectClient=lpDrawItemStruct->rcItem;
    然后使用你得到的DC画图就可以了.
    例如:
        pDC->TextOut(...);
    }
      

  6.   

    dc是和窗口关联的,
    用dc画图,
    就会在关联的窗口上反映出来。
      

  7.   

    如果你想画在CStatic控件上.可以用ouyh12345() 的方法.然后在DrawItem这样做.
    void C3dTextButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
    {
    // TODO: Add your code to draw the specified item
    CDC* pDC=CDC::FromHandle(lpDrawItemStruct->hDC);
    ASSERT_VALID(pDC);
    CRect rectClient=lpDrawItemStruct->rcItem;
    然后使用你得到的DC画图就可以了.
    例如:
        pDC->TextOut(...);
    }
    -----------------------------------------------------------------------------------
    不应该用Bitblt()函数吗?
    我看书上介绍,平移图形,好像可以用这个,但我没太看懂,不知道要平移到控件上,应该怎么做?
    (我目前的思路是这个,没有考虑DrawItem(),要是用DrawItem()我恐怕还得从看相关知识)