1. 程式人生 > >使用MFC進行程式設計,繪製直線橢圓以及樣條曲線

使用MFC進行程式設計,繪製直線橢圓以及樣條曲線

新建基於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); }