问题描述
- 请教一个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,虽然可以运行。
解决方案
解决方案二:
你可以考虑将 CCLIENTDC和CPEN 定义成窗体类的成员,这样就不用每次都定义它们,只要拿来使用就行。
在窗体销毁时,考虑这两个对象是否要释放。
解决方案三:
没有问题,可以这样,一般也是这样做的。
时间: 2024-12-02 01:06:39