|
//////////////////////////////////////////
//Li3_4.cpp
//功能:实现画一个大小为客户区大小的椭圆
// //////////////////////////////////////
//AUTHOR:ZQuan
//DATE:2007/11/27
////////////////////////////////////////
3.4编写一个单文档的MFC应用程序Li3_4,使用CwindowDC类完成例3.3同样的功能。
(1)使用MFCAppWizard[exe]向导创建一个单文档应用程序Li3_4.
(2) 进入ClassWizard,在Cli3_4View类中增加消息WM_LBUTTONDOWN的消息响应函数OnLButtonDown().
(3) 在函数OnLButtonDown()中添加如下代码。
void CLi3_4View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CWindowDC dc(this); //定义客户区设备环境
CRect rec;
GetClientRect(&rec); //获得客户区的大小
dc.Ellipse(rec); //绘制椭圆
CView::OnLButtonDown(nFlags, point);
}
(4) 编译、链接并运行程序。
结果分析与讨论:运行后得到一个超出视图所见区域的矩形;CWinidowDC类与CClientDC类相似,最大的不同就是CWinidowDC在整个就用程序窗口上画图;除非要自己绘制窗口边框和按钮,否则一般不用它。
可见CPaintDC、CClientDC与CWinidowDC有一共同的特点,就是需要使用某个窗口对象定义设备环境。
总结,经过例程3.4的学习,我掌握了以下知识:
1. 使用CwindowDC创建一个对象并将当前窗口对象的地址传递给它,使对象可以获取环境设备
2. 使用Crect创建一个对象
3. 使用GetClientRect成员函数获取窗口坐标,并将坐标值传递给矩形对象
4. 使用CwindowDC的成员函数画一个椭圆 |
|