我将图片装入了CBitmap对象,在显示前需要在图片上打上一些定位点。请问有什么简单的方法,就是能不能用SetPixel之类。看有关修改图片的问题,都是主张开内存将图片全搬出来,画好再复制回去,感觉这样很麻烦。请求简单方法。

解决方案 »

  1.   

    SetPixel就可以了,为什么不能用??
      

  2.   

    可以吗?感觉SetPixel不是CBitmap的成员。class CMyBitmap : public CBitmap
    {
    // 打上网点
    void PutNetPixel(const int col,const int row)
    {
    SetPixel(hdc,col,row,RGB(0,0,0));
    }
    };其中的hdc如何写?这个图片还没有跟pDC关联。
      

  3.   

    在位图上画点得先把位图选入CDC里面再画~~~~
    而CDC可以隐式转化为HDC~~
    即:
    有如下隐式转换:
    CDC dc;
    HDC hdc=(HDC)dc;
      

  4.   

    可以吗?感觉SetPixel不是CBitmap的成员
    =============
    SetPixel确实不是CBitmap的成员,你可以先将CBitmap选进一个CDC中去,然后用SetPixel去画点,就行了。
      

  5.   

    把位图装到dc上,然后在dc上打点
      

  6.   

    如果View没有创立,得不到pDC,创建的内存dc会不会不兼容?
      

  7.   

    可以先用GetDC()取得当前窗口的dc,然后基于这个进行建立,大致代码如下:
    CDC MemDC;
    CDC *dc=new CDC();
    dc=GetDC();
    MemDC.CreateCompatibleDC(dc);
    MemDC.SelectObject(pB);
    MemDC.SetPixel(20,20,RGB(255,0,0));
    其中pB是CBitmap对象