请教一个MFC代码的问题

void CmouselessionDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (nFlags == MK_LBUTTON)
{
CClientDC ddd(this);
CPen ppen;
ppen.CreatePen(1, 5, RGB(0, 0, 255));
ddd.SelectObject(ppen);
ddd.MoveTo(pt);
ddd.LineTo(point.x,point.y);
}
pt = point;
CDialogEx::OnMouseMove(nFlags, point);
}
请问下这段代码是不 是有逻辑上的问题呀?每MOUSEMOVE都会定义一遍
CCLIENTDC和CPEN,虽然可以运行。

2个回答

你可以考虑将 CCLIENTDC和CPEN 定义成窗体类的成员,这样就不用每次都定义它们,只要拿来使用就行。
在窗体销毁时,考虑这两个对象是否要释放。

qq_29670983
qq_29670983 请问定义成窗体类的成员的话是不是必须要用指针呀?
接近 5 年之前 回复
qq_29670983
qq_29670983 您的意思是说在对话框类的头文件中定义么?好像必须定义成指针类型的才有用,定义成非指针类型的会胡乱画,请问是为什么呀?
接近 5 年之前 回复

没有问题,可以这样,一般也是这样做的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问