看了一天孙鑫老师的视频教程,发现其实在VC++中利用MFC进行编程也可以拦截消息,通过建立消息
映射来处理消息。
嘿嘿,根据老师讲的内容,自己测试了书中的代码。
发现XP和2000对处理客户区的范围不一样。
void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
/////////////
/*
用全局函数实现画线功能
*/
/*
HDC hdc;
hdc=::GetDC(this->m_hWnd),
::MoveToEx(hdc,m_point.x,m_point.y,NULL);
::LineTo(hdc,point.x,point.y);
::ReleaseDC(m_hWnd,hdc);
*/
///////////
/*
利用CDC类实现画线功能
*/
/*
CDC *pdc=GetDC();
pdc->MoveTo(m_point);
pdc->LineTo(point);
ReleaseDC(pdc);
*/
////////////
/*
利用CClientDC类实现画线功能
*/
/*
CClientDC dc(this);
dc.MoveTo(m_point.x,m_point.y);
dc.LineTo(point);
*/
/*
CClientDC dc(GetParent());
dc.MoveTo(m_point);
dc.LineTo(point);
*/
/////////////////
/*
利用CwindowDC类画线
*/
/*
CWindowDC dc(this);
dc.MoveTo(m_point);
dc.LineTo(point);
*/
/*
CWindowDC dc(GetDesktopWindow());
dc.MoveTo(m_point);
dc.LineTo(point);
dc.TextOut(100,100,"Volcanol",strlen("Volcanol"));
*/
/////////////////
/*
绘制彩色的线条
*/
//利用CPen类进行彩色绘图
/*
CPen pen(PS_SOLID,5,RGB(255,43,123));
CClientDC dc(this);
CPen *oldpen=dc.SelectObject(&pen);
dc.MoveTo(m_point);
dc.LineTo(point);
dc.SelectObject(&oldpen);
*/
//////////////
/*
利用画刷绘图
*/
/*
CBrush brush(RGB(100,23,255)); //创建画刷
CClientDC dc(this); //获取客户区域的设备内容
dc.FillRect(CRect(m_point,point),&brush); //填充区域
*/
//////////////////
/*
利用位图画刷绘图
*/
/*
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CBrush brush(&bitmap);
CClientDC dc(this); //获取客户区域的设备内容
dc.FillRect(CRect(m_point,point),&brush); //填充区域
*/
如果对MFC和winapi 都很熟悉那么使用VC开发一个应用程序还是挺快捷的,
利用MFC建立界面,而利用winapi实现负责应用。
其实可以通过自己封装来实现一个程序架构的。

浙公网安备 33010602011771号