我想在一个程序中动态创建一个Cbitmap类,并且让这个类根据随机数来随机付给其颜色,并在view中绘制这个图,之后将这个图存放到CimageList中,我现在不知道如何创建这个Cbitmap类,并付给他颜色数据,请高手指点。

解决方案 »

  1.   

    创建CPaintDC dc(this);
    m_bitmap=new CBitmap();
    m_bitmap->CreateCompatibleBitmap(&dc,rc.Width(),rc.Height());CDC           myDC; 
    myDC.CreateCompatibleDC(&dc);   
    CBitmap   *pOldBitmap   =   myDC.SelectObject(m_bitmap);   CBrush mybrush(RGB(255,255,255));
    myDC.FillRect(&rc,&mybrush);
    给位图填充随机付给其颜色(&myDC)myDC.SelectObject(pOldBitmap);
    myDC.DeleteDC();
      

  2.   

    绘制BITMAP   bmp;   
    m_bitmap->GetBitmap(&bmp);   
    CDC cdc; 
    cdc.CreateCompatibleDC(pDC);
    CBitmap* pOldbm;
    pOldbm=cdc.SelectObject(m_bitmap); 
    pDC->BitBlt(0,0,bmp.bmWidth,bmp.bmHeight,&cdc,0,0,SRCCOPY);
    cdc.SelectObject(pOldbm);
      

  3.   

    给位图填充随机付给其颜色(&myDC)-------真是不好意思,我这一步还是不知道怎么做出来,看来还要送佛送到西,你还是在帮我一把。
    我这里要设置每一个CBitmap的大小为16*16的彩色图。真的不好意思,我对绘图震得不懂。
      

  4.   

    如果是涂色:
    int r,g,b;
    CBrush mybrush(RGB(255*rand(),255*rand(),255*rand()));
    myDC.FillRect(&rc,&mybrush);
      

  5.   

    我需要把多个Cbitmap保存到CImagelist中,在CtreeCtrl中显示,所以我要设定CBitmap的大小为16×16,我不知道怎么做,看了你热情的帮忙,我还是一头污水,不清楚如何给多个CBitmap赋一个16×16大小的图像数据。可能是我太笨了,不好意思啊。