Chinaunix首页 | 论坛 | 博客
  • 博客访问: 510148
  • 博文数量: 158
  • 博客积分: 4015
  • 博客等级: 上校
  • 技术积分: 1711
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-27 14:00
文章分类

全部博文(158)

文章存档

2010年(71)

2009年(87)

我的朋友

分类: C/C++

2010-02-06 12:28:39

CDC::MoveTo的声明:

CPoint MoveTo(
   int x,
   int y
);
CPoint MoveTo(
   POINT point
);

很显然,MFC重载了MoveTo函数。

CDC::LineTo的声明:
 

BOOL LineTo(
   int x,
   int y
);
BOOL LineTo(
   POINT point
);

下面的例子说明这一点:
lineDemo.h

class CMyApp : public CWinApp {
    virtual BOOL InitInstance();
};

class CMainWindow : public CFrameWnd {
public:
    CMainWindow();
protected:
    afx_msg void OnPaint();
    DECLARE_MESSAGE_MAP()
};

lineDemo.cpp

#include <afxwin.h>
#include "lineDemo.h"

CMyApp myApp;

BOOL CMyApp::InitInstance() {
    m_pMainWnd = new CMainWindow;
    m_pMainWnd->ShowWindow(m_nCmdShow);
    m_pMainWnd->UpdateWindow();
    return TRUE;
}

BEGIN_MESSAGE_MAP(CMainWindow, CFrameWnd)
    ON_WM_PAINT()
END_MESSAGE_MAP()

CMainWindow::CMainWindow() {
    Create(NULL, _T("画线了"));
}

void CMainWindow::OnPaint() {
    CPaintDC dc(this);
    RECT rect;
    GetClientRect(&rect);
    CPoint p(rect.right, rect.bottom);
    dc.LineTo(p);
    p.x = rect.right;
    p.y = 0;
    dc.MoveTo(p);
    dc.LineTo(0, rect.bottom);
    dc.Ellipse(&rect);
}

运行结果:

阅读(3511) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~