| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 926 人关注过本帖
标题:多文档程序在cview类ondraw函数里传参绘图遇到的怪现象,
只看楼主 加入收藏
lanriver
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:133
专家分:101
注 册:2008-8-9
结帖率:70.59%
收藏
 问题点数:0 回复次数:2 
多文档程序在cview类ondraw函数里传参绘图遇到的怪现象,
void CLCADView::OnDraw(CDC* pDC)
{
    CLCADDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
    CRect rect;
    GetClientRect(&rect);
    CDC MemDC;   
    MemDC.CreateCompatibleDC(pDC);   
    CBitmap bitmap, *pOldBitmap2;
    bitmap.CreateCompatibleBitmap(pDC, rect.Width(), rect.Height());
    pOldBitmap2 = MemDC.SelectObject(&bitmap);
    COLORREF    m_bkColor;
    m_bkColor = RGB(0x00,0xFF,0x00);
    MemDC.FillSolidRect(0, 0, rect.Width(), rect.Height(), m_bkColor);
    int y=GetDocument()->h;//GetDocument()->h在文档类里打开文件获得高度
    int x=GetDocument()->w;//GetDocument()->w在文档类里打开文件获得宽度
    int u=y*x;
    int v=0;
    int w=0;
    unsigned char dac[256][3];
    memcpy(dac,GetDocument()->DAC,sizeof(GetDocument()->DAC));//文档类里读取的颜色表数组拷贝到dac数组中
    unsigned char *pdata=GetDocument()->pBmpBuf;//文档类中的pBmpBuf数据块指针与pdata指针联系起来   
 /////////////////////////////////////////////////////////////////////////////
//将高度,宽度,数据块,传参后打开文件后只显示绘的背景色,bmp不显示到客户区,如果打开两次文件bmp图又能绘到客户区
   for(int i=0;i<y;i++)
      {
        for (int j=0;j<x;j++)         
        {
            if(v<u)
            {
                w=pdata[v++];
                int r=dac[w][0];int g=dac[w][1];int b=dac[w][2];
                MemDC.SetPixel(j,i,RGB(r,g,b));            
            }
        }
       }
/////////////////////////////////////////////////////////////////////////////////
//上面用for循环那段代码改成下面注释区代码,在打开文件后生成窗口,背景和画的点能够正常显示到客户区,求给位老师解决帮小徒解决下问题,先谢谢了!

/*
 for(int i=0;i<10;i++)
      {
        for (int j=0;j<10;j++)         
        {
           MemDC.SetPixel(j,i,RGB(20,20,100));         
         }
       }
*/
    //MemDC.SelectObject(bitmap);
    pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &MemDC, 0, 0, SRCCOPY);
    ReleaseDC(pDC);
}

[ 本帖最后由 lanriver 于 2012-9-12 00:41 编辑 ]
搜索更多相关主题的帖子: void 
2012-09-12 00:39
lanriver
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:133
专家分:101
注 册:2008-8-9
收藏
得分:0 
由于有特殊用处,所以必须画点,所以LoadBitmap用不到。自己先顶了,期待老师能解决。
2012-09-12 00:44
lanriver
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:133
专家分:101
注 册:2008-8-9
收藏
得分:0 
谢谢关注的朋友们,问题已经自己解决,所以停止悬赏,希望帖子能够沉下去,留给努力的朋友们。
2012-09-14 21:10
快速回复:多文档程序在cview类ondraw函数里传参绘图遇到的怪现象,
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034025 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved