CWinAPP
  BOOL CWinApp::InitInstance()
  //程式進入點

  CWinApp::m_pMainWnd
  //繼承CWinThread類別中m_pMainWnd
  //m_pMainWnd指向該應用程式物件所使用的視窗框架物件
  
在CWinApp::InitInstance()中
  CCommandLineInfo cmdInfo;
  ParseCommandLine(cmdInfo);
  if (!ProcessShellCommand(cmdInfo))
    return FALSE;
是負責在程式開始前系統抓到的參數傳入
如果是MDI程式開始時不希望有childWnd打開
可以在ParseCommandLine跟ProcessShellCommand
加入cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
enum{
   FileNew,
   FileOpen,
   FilePrint,
   FilePrintTo,
   FileDDE,
   FileNothing = -1
  };

在MFC視窗程式裡 視窗訊息的傳遞與處理
首先要建立"訊息映射表"
在負責回應訊息的Class中  加入映射表的宣告
  DECLARE_MESSAGE_MAP()
然後在Class外宣告所處理的訊息及對應的處理函式
(通常是寫在.cpp檔的最上頭)
BEGIN_MESSAGE_MAP( ClassName, BaseClassName )
  ..............//訊息對應項目
END_MESSAGE_MAP()

MFC訊息分成兩種
1. 標準系統訊息  ex. 按下滑鼠左鍵, 視窗關閉
  對應項目通常為 
   ON_WM_xxxxx ( )
  回應函數名稱 MFC以自行定義 通常不會更改
2. 自訂命令訊息 ex. 使用者建立的資源物件的識別子所產生的事件
  對應項目通常是
   ON_COMMAND ( 識別子, 處理函式) 
   ON_UPDATE_COMMAND_UI  ( 識別子, 處理函式) 

  宣告處理此種訊息的函數 前面都會加上afx_msg
   afx_msg xxxx
<!--more-->


全站熱搜
創作者介紹
創作者 Bram Yeh 的頭像
Bram Yeh

bram

Bram Yeh 發表在 痞客邦 留言(0) 人氣()