MoveTo,LineTo的小问题

himan2002 2007-04-10 12:18:53
void DrawGrid(CDC* lpDC,RECT& rt)
{
/////////////////////////////////////////////////////////
lpDC->Rectangle( &rt );
/////////////////////////////////////////////////////////
for( int n=0; n<Count; n++ )
{
//正常
lpDC->MoveTo( offsetX,rt.top );
lpDC->LineTo( offsetX,rt.bottom );

/*起点超出rt.bottom一个像素
lpDC->MoveTo( offsetX,rt.bottom );
lpDC->LineTo( ofsetX,rt.top );
*/
}
/////////////////////////////////////////////////////////
}
是个画表格的函数(略去部分代码),如果竖线是从底部往上画就会超出底框一个像素,如果是从顶往下画就正常。大家有没有类似问题?我的平台是VS2003+windowXP
...全文
560 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
himan2002 2007-04-10
  • 打赏
  • 举报
回复
CDC::LineTo
Draws a line from the current position up to, but not including, the point specified by x and y (or point).
/////////////////////////////////////////////////////
看了MSDN的资料,汗,用了VC多年没注意这个.
菜牛 2007-04-10
  • 打赏
  • 举报
回复
是这样,画的时候注意右面、下面的点算在外面。
livedeal 2007-04-10
  • 打赏
  • 举报
回复
LineTo的最后一个点是不画的~~~~~也就是说offsetX,rt.bootom这个点是没有的~~~~楼主去看看CDC里面的一些资料吧,rectangle里是一样的,rt是{0,0,8,8}的话,8的那一行和列都是没有画出来的~

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧