为新手回答一个关于vc的简单问题

来源:百度知道 编辑:UC知道 时间:2024/05/08 19:07:50
用单文档实现鼠标画直线
在CDrawView类下的OnLButtonUp如下
void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)
{
m_Point_End=point;
HDC hdc;
hdc=::GetDc(m_hWnd);
BOOL MoveToEx(hdc,m_Point_Begin.x,m_Point_Begin.y,NULL);
BOOL LineTo(hdc,m_Point_End.x,m_Point_End.y);
::ReleaseDC(m_hWnd,hdc);
CView::OnLButtonUp(nFlags, point);

}

提示错误:
--------------------Configuration: Draw - Win32 Debug--------------------
Compiling...
DrawView.cpp
E:\mydocument\vc\Draw\DrawView.cpp(116) : error C2039: 'GetDc' : is not a member of '`global namespace''
E:\mydocument\vc\Draw\DrawView.cpp(116) : error C2065: 'GetDc' : undeclared identifier
E:\mydocument\vc\Draw\DrawView.cpp(116) : error C2440: '=' : cannot convert from 'int' to 'struct HDC__ *'
Conversion from integral type to pointer type requires reinterp

这里你可以考虑用ClientDC dc(this);
应该是错在你不能用::GetDc()这个函数,不能用的原因是编译器找不到这个函数。
在mfc中,你可以用ClientDC dc(this);
之后就可以用dc.LineTo()和dc.MoveTo()这两个函数,并且不用ReleaseDC();
函数调用时,前面是不用加函数的返回值的,只有在声明和定义时才加。