我新建了一个类,用于画一些图,但是我发现,我在view类用这个类的对象调用这个画图函数来绘图,结果,点的坐标不是我鼠标点下的坐标这是新的类的绘制函数,我用来绘制一些点阵组成的字符
bool CTextPut::DoText(CPoint writepoint,CDC* pDC)
{ CPoint CDpoint=writepoint;

int i,j;
for(i=0;i<16;i++)
{
for(j=0;j<16;j++)
{
if(chen[i][j]==1)
{
pDC->SetPixel(CDpoint,RGB(255,0,0));

}
CDpoint.x++;
}
CDpoint.x=writepoint.x;
CDpoint.y++;
};

return true;
}下面的是我的视类鼠标事件里面的代码
CDC *pDC=GetDC();
CTextPut word;
    word.DoText(point,pDC);
ReleaseDC(pDC);大神指教一下

解决方案 »

  1.   

      if(chen[i][j]==1)
                {
                    pDC->SetPixel(CDpoint,RGB(255,0,0));
                     
                }
                CDpoint.x++;这个chen[i][j]如果不是一,那你的cpoint.x就++了,位置就不是你点的那个了。
      

  2.   


    for(i=0;i<16;i++)
    {
    for(j=0;j<16;j++)
    {
    if(chen[i][j]==1)
    {
    CDpoint.x = writepoint.x+j;
    CDpoint.y = writepoint.y+i;
    pDC->SetPixel(CDpoint,RGB(255,0,0));
    }
    }
    }
    画点阵的代码这么写会不会简单明了点,出问题的话也好调试
      

  3.   

    自己设断点跟一下,看一下你点击的那个point和程序中绘制的第一个Point是否相同。
      

  4.   

    你这里的point坐标是相对屏幕的坐标