新建專案->MFC模板->MFC應用程式->應用程式型別:單個檔案;專案樣式:MFC 標準->下一步...OK
此時點擊運行,可直接彈出視窗,
調整 視圖->類視圖:
·CAboutDlg,幫助選卡->關于對話框
·CMainFrame,框架類,相框,PreCreateWindow可修改視窗外觀,游標,圖示;Create注冊,呼叫OnCreate產生視窗;
·CMFCTestApp,InitInstance入口
·CMFCTestDoc,資料的存盤和加載
·CMFCTestView,資料的顯示和修改,相片

右鍵CMFTestView->屬性->訊息->WM_LBUTTONDOWN->OnLButtonDown;(自動創建,取消步驟相同,但取消只是邏輯洗掉,即注釋掉了,并未真正洗掉)

//檔案名: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為全域函式,解決父類不相關問題,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/10404.html
標籤:其他
