VC++6.0中为什么获得父窗口DC句柄后可以在子视窗口画图?
一个简单的单文档程序(工程名cai),我在CCaiView中添加了一个消息处理函数。voidCCaiView::OnLButtonUp(UINTnFlags,CPoint...
一个简单的单文档程序(工程名cai),我在CCaiView中添加了一个消息处理函数。
void CCaiView::OnLButtonUp(UINT nFlags, CPoint point)
{
HDC hdc;
hdc=::GetDC(::GetParent(m_hWnd));
MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);
LineTo(hdc,point.x,point.y);
::ReleaseDC(::GetParent(m_hWnd),hdc);
CView::OnLButtonUp(nFlags, point);
}
其中m_ptOrigin是已经添加到CCaiView类的private成员,类型为Point,并且在void CDrewView::OnLButtonDown(UINT nFlags, CPoint point)中已记录下起点。
请问为什么子窗口获得父窗口DC句柄后可以同时在子视窗口和父窗口画图,消息是从不同窗口获取的啊!!(我开始以为是画了两条线,是这样吗)
lmzonline:
和你说的一样啊,画出来的坐标不对的,在父窗口画的难道不会被View覆盖吗,为什么View中也有线段啊? 展开
void CCaiView::OnLButtonUp(UINT nFlags, CPoint point)
{
HDC hdc;
hdc=::GetDC(::GetParent(m_hWnd));
MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);
LineTo(hdc,point.x,point.y);
::ReleaseDC(::GetParent(m_hWnd),hdc);
CView::OnLButtonUp(nFlags, point);
}
其中m_ptOrigin是已经添加到CCaiView类的private成员,类型为Point,并且在void CDrewView::OnLButtonDown(UINT nFlags, CPoint point)中已记录下起点。
请问为什么子窗口获得父窗口DC句柄后可以同时在子视窗口和父窗口画图,消息是从不同窗口获取的啊!!(我开始以为是画了两条线,是这样吗)
lmzonline:
和你说的一样啊,画出来的坐标不对的,在父窗口画的难道不会被View覆盖吗,为什么View中也有线段啊? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询