MFC CDC与CClientDC 的textout 用法 5
CDCdc;CStringstr;str.Format("%d%d",point.x,point.y);dc.TextOut(100,0,str);想在OnMouseMo...
CDC dc;
CString str;
str.Format("%d %d",point.x,point.y);
dc.TextOut(100,0,str);
想在OnMouseMove() 函数中输出当前鼠标的坐标。为什么运行时会出错。
而将CDC改成CClientDC就不会出错。 展开
CString str;
str.Format("%d %d",point.x,point.y);
dc.TextOut(100,0,str);
想在OnMouseMove() 函数中输出当前鼠标的坐标。为什么运行时会出错。
而将CDC改成CClientDC就不会出错。 展开
1个回答
展开全部
用CDC也不会出错,但不是自己创建一个,而是关联到OnMouseMove()的窗口DC上。
如
void CTestDlg:OnMouseMove(UINT nFlags, CPoint point)
{
CDC* pDC=GetDC();
CString str;
str.Format("%d %d",point.x,point.y);
pDC->TextOut(100,0,str);
ReleaseDC(pDC);
}
可能还会存在的问题:
在OnMouseMove中绘制,可能会导致闪烁。
pDC->TextOut(100,0,str);中的(100,0)这个坐标要在你这个窗口的可绘制区域内(超出部分会被裁减掉)。可以用pDC->SelectClipRgn(...)函数或SelectClipPath(...)函数设置这个区域。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询