MFC/QT 學習筆記(三)——MFC模板建立

新建項目->MFC模板->MFC應用程序->應用程序類型:單個文檔;項目樣式:MFC 標準->下一步...OK框架

此時點擊運行,可直接彈出窗口。函數

 

調整 視圖->類視圖:this

  ·CAboutDlg,幫助選卡->關於對話框spa

 

  ·CMainFrame,框架類,相框,PreCreateWindow可修改窗口外觀,光標,圖標;Create註冊,調用OnCreate產生窗口;code

  ·CMFCTestApp,InitInstance入口orm

  ·CMFCTestDoc,數據的存儲和加載blog

  ·CMFCTestView,數據的顯示和修改,相片文檔

 

右鍵CMFTestView->屬性->消息->WM_LBUTTONDOWN->OnLButtonDown;(自動建立,取消步驟相同,但取消只是邏輯刪除,即註釋掉了,並未真正刪除)it

 

//文件名:CMainFrame.h:模板

class CMainFrame : public CFrameWnd

// 生成的消息映射函數
protected:
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
    DECLARE_MESSAGE_MAP()//消息映射宏

//文件名:CMainFrame.cpp

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)//分界宏
    ON_WM_CREATE()

    ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此處經過修改
// CREATESTRUCT cs 來修改窗口類或樣式

return TRUE;
}

 

//文件名:CMFCTestApp.cpp

BOOL CMFCTestApp::InitInstance(){

  ... ...

// 惟一的一個窗口已初始化,所以顯示它並對其進行更新
    m_pMainWnd->ShowWindow(SW_SHOW);
    m_pMainWnd->UpdateWindow();
    return TRUE;
}

 

//文件名:CMFCTestView.h

class CMFCTestView : public CView

// 生成的消息映射函數
protected:
    DECLARE_MESSAGE_MAP()
public:
    afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
    afx_msg void OnPaint();

//文件名:CMFCTestView.cpp

// CMFCTestView 繪圖
void CMFCTestView::OnDraw(CDC* pDC)
{
    CMFCTestDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    if (!pDoc)
        return;

    // TODO: 在此處爲本機數據添加繪製代碼
    pDC->TextOutW(100, 100, TEXT("爲了部落"));
}

// CMFCTestView 消息處理程序

void CMFCTestView::OnLButtonDown(UINT nFlags, CPoint point)
{
    // TODO: 在此添加消息處理程序代碼和/或調用默認值
    CString str;
    str.Format(TEXT("x=%d,y=%d"), point.x, point.y);
    MessageBox(str);

    CView::OnLButtonDown(nFlags, point);
}

//若是使用了OnDraw,就不要再使用OnPaint了;OnPaint會覆蓋OnDraw;

void CMFCTestView::OnPaint()
{
    CPaintDC dc(this); // device context for painting
                       // TODO: 在此處添加消息處理程序代碼
                       // 不爲繪圖消息調用 CView::OnPaint()
    dc.TextOutW(100, 100, TEXT("爲了聯盟"));
}

ps:

後綴Ex爲擴展函數;

前綴Afx爲全局函數,解決父類不相關問題。

相關文章
相關標籤/搜索