CDC * m_dc;
CRect m_rect;
m_image1.GetClientRect(m_rect);
m_dc = m_image1.GetDC();
for (int i = 1;i<m_rect.Width();i++)
for (int j = 1; j< m_rect.Height();j++)
{
m_dc->SetPixel(i,j,RGB(0,0,0));
}按理说应该图片的整个区都被打上黑点啊,会什么只打了一半?

解决方案 »

  1.   

    用完DC需要ReleaseDC(m_dc) 你的截图看不见
    我改了哈 在我这里是这个客户区都是黑的 显示为从左至右像拉窗帘一样的效果 你在检查一下void CSetPixelView::OnDraw(CDC* pDC)
    {
    CSetPixelDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc); CDC * m_dc; 
    CRect m_rect; 
    GetClientRect(m_rect); 
    m_dc = GetDC(); 
    for (int i = 1;i <m_rect.Width();i++) 
    for (int j = 1; j < m_rect.Height();j++) 

    m_dc->SetPixel(i,j,RGB(0,0,0)); 

    ReleaseDC(m_dc); // TODO: add draw code for native data here
    }
      

  2.   

    我试了一下你的,也是同一个效果,不行啊,只显示一半啊,你在DLG对话框中的一个按钮中实现一下看一下?
      

  3.   

    没有道理呀。你干嘛不用填充?这样不是更有效吗?如
    void CSetPixelView::OnDraw(CDC* pDC) 

    CSetPixelDoc* pDoc = GetDocument(); 
    ASSERT_VALID(pDoc);
     CDC * m_dc;
     CRect m_rect;
     GetClientRect(&m_rect); 
     m_dc = GetDC();
     m_dc->FillSolidRect(&m_rect,RGB(0,0,0);
     ReleaseDC(m_dc); // TODO: add draw code for native data here } 
      

  4.   

    问题就是再这个RECT我控制出现问题,想把这个问题解决了,实际上这只是我程序一部分,原本是想对每个点进行的不同的操作,因而要控制这个RECT区啊,可就是实现不了啊,可就是找不到原因啊?