使用MFC進行程式設計,繪製直線橢圓以及樣條曲線
阿新 • • 發佈:2019-02-10
新建基於MFC的空檔案,新增.cpp檔案,新增.h檔案.相應的檔案內容為;
hello.h檔案
#ifndef __HELLO_H
#define __HELLO_H
//#include <windows.h>
#include <stdio.h>
#include <afxwin.h>
class CMyApp:public CWinApp //應用程式類
{
virtual BOOL InitInstance();
};
class CMyFrame:public CFrameWnd //框架視窗類
{
public:
CMyFrame (); //建構函式
protected:
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP() //將訊息和相應的函式連線在一起
};
#endif
hello.cpp檔案
#include "hello.h"
CMyApp myApp; //WinMain函式就在這個函式裡面,這個就是每個函式都有一個的原因,一個全域性變數、
//會將相應的函式都進行初始化
BOOL CMyApp::InitInstance()
{
m_pMainWnd= new CMyFrame; //視窗執行的指標,指向一個新的記憶體儲存的就是按照CMyApp類開闢的記憶體
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
//開始訊息對映
BEGIN_MESSAGE_MAP(CMyFrame,CFrameWnd) //作用是先在子類中尋找相應的函式,若是子類中沒有就在父類中進行進行尋找
ON_WM_PAINT()
END_MESSAGE_MAP() //是巨集不用帶分號
CMyFrame::CMyFrame()
{
Create(NULL,TEXT("Andrew2017" ));
}
void CMyFrame::OnPaint() //繪製圖形使用OnPaint類提供的函式
{
CPaintDC dc(this);
//CRect rect;
// GetClientRect(&rect); //這四行是為了繪製一個交叉的直線
/*dc.MoveTo(50,50);
dc.LineTo(600,500);
dc.MoveTo(50,400);
dc.LineTo(600,50);*/
//dc.Ellipse(0,0,100,30) ; //繪製一個圓形
POINT aPoint1[]={120,100,120,200,250,150,500,40}; //PolyBezier樣條曲線
POINT aPoint2[]={120,100,50,350,250,200,500,40};
dc.PolyBezier(aPoint1,4);
dc.PolyBezier(aPoint2,4);
}