本帖最后由 hostzhenna 于 2010-05-11 19:09:13 编辑

解决方案 »

  1.   

    //自己画一个棋盘:24*24
    void CMyStatic::DrawGrid(const CRect rect, CDC *pDC)
    {
    CPen pen;
    pen.CreatePen(PS_SOLID, 1, ::GetSysColor(COLOR_BTNFACE));
    pDC->SelectObject(&pen);
    //
    int   h=rect.Height()/24;
    int   w=rect.Width()/24; int jj=0;
    for(jj=1;jj< 24;jj++)
    {// -
    pDC->MoveTo(rect.left,rect.top+jj*h);
    pDC->LineTo(rect.right,rect.top+jj*h);
    }
    for(jj=1;jj< 24;jj++)
    {// |
    pDC->MoveTo(rect.left+jj*w,rect.top);
    pDC->LineTo(rect.left+jj*w,rect.bottom);
    }
    }
    //再填色
      

  2.   

    他是自己设计一个控件,我想这样的控件应该不难实现吧,你可以把一矩形区域划分成若干个区域,这可以用在对话框中放置分隔条来实现,然后通过GetDlgItem(IDC->SEPARATOR)->GetWindowRect(&rectSeparator)函数获得各个分隔条分割的矩形的坐标,然后用一个随机函数来给各个矩形区域设置不同的DC着色。
    可能这比较大概,但按楼主提供只能这么大概说说我的想法了。
      

  3.   


    你在 OnPaint 里 调用 DrawGrid就能看了
      

  4.   

    7楼的图跟我传上去的一样....sjdev给点意见
      

  5.   

    创建一个位图,用每个像素表示一个方块,响应WM_PAINT消息用StretchBlt把位图贴上去,设置方块颜色就是设置位图中对应像素的颜色。
      

  6.   

    类似的东西我做过
    我做的是视频图
    做一个BYTE数组
    双缓冲技术中为后被缓冲DC的关联位图SetBitmapBits
      

  7.   

    计算一个个的小矩形区域,然后FillSolidRect()行不??