MoveTo,LineTo的小疑点
MoveTo,LineTo的小问题
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
------解决方案--------------------
LineTo的最后一个点是不画的~~~~~也就是说offsetX,rt.bootom这个点是没有的~~~~楼主去看看CDC里面的一些资料吧,rectangle里是一样的,rt是{0,0,8,8}的话,8的那一行和列都是没有画出来的~
------解决方案--------------------
是这样,画的时候注意右面、下面的点算在外面。
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
------解决方案--------------------
LineTo的最后一个点是不画的~~~~~也就是说offsetX,rt.bootom这个点是没有的~~~~楼主去看看CDC里面的一些资料吧,rectangle里是一样的,rt是{0,0,8,8}的话,8的那一行和列都是没有画出来的~
------解决方案--------------------
是这样,画的时候注意右面、下面的点算在外面。