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就不会出错。
展开
 我来答
seafox217
2013-09-21 · TA获得超过253个赞
知道答主
回答量:34
采纳率:0%
帮助的人:64.6万
展开全部

用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);

}


可能还会存在的问题:

  1. 在OnMouseMove中绘制,可能会导致闪烁。

  2. pDC->TextOut(100,0,str);中的(100,0)这个坐标要在你这个窗口的可绘制区域内(超出部分会被裁减掉)。可以用pDC->SelectClipRgn(...)函数或SelectClipPath(...)函数设置这个区域。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式