利用SetPixel函数画点位置总不对 咋回事啊???
我的程序中需要在一幅位图上继续画点和线
我写了一个函数:
DrawPoint(CWnd *pwnd, CPoint point)
{
if(!pwnd) return;
HDC hdc;
HPEN hpen,holdpen;
hpen=CreatePen(PS_SOLID,12,RGB(255,0,0));
hdc=::GetDC (pwnd->m_hWnd );
holdpen=(HPEN)::SelectObject (hdc,hpen);
DPtoLP(hdc,&point,1);
::SetPixel (hdc,point.x ,point.y ,RGB(255,0,0));
::SelectObject (hdc,holdpen);
DeleteObject(hpen);
::ReleaseDC (pwnd->m_hWnd ,hdc);
return;
}
但是当我把鼠标左键按下是的坐标传入时画出的点总是有偏差
我用的是默认的映射模式
请问各位 这到底是咋回事啊 急死俺了!!!!
问题点数:0、回复次数:4Top
1 楼alphapaopao(炮炮)回复于 2003-06-01 15:08:01 得分 0
“DPtoLP(hdc,&point,1);”
怎么转换了一下了? 你的 point 的原始数据是什么样的?Top
2 楼wolfghostyang(寻梦人)回复于 2003-06-01 15:25:37 得分 0
point就是直接从OnLButtonDown函数中接收过来的
Top
3 楼triggerd(有点着急)回复于 2003-06-01 15:43:57 得分 0
默认模式?没做什么修改?若是的话,好像没有问题.“DPtoLP(hdc,&point,1);”也没必要。Top
4 楼crystal_jing(冰封)回复于 2003-06-01 22:40:03 得分 0
会不会是屏幕绝对坐标,和窗口相对坐标的问题。。两者是不一样的。Top




