1. 程式人生 > >用ON_COMMAND_RANGE實現多個事件響應同一個函式

用ON_COMMAND_RANGE實現多個事件響應同一個函式

  • 引數:

    id1 : 在連續範圍的命令 ID 的命令 ID。
    id2 :命令 ID。連續範圍的命令 ID 的結尾。
    memberFxn :命令訊息對映處理程式函式的名稱。

  • 備註:

    1. 範圍與 id1 的 ID 與 id2的開頭和末尾。
    2. 使用 ON_COMMAND_RANGE 對映範圍命令 ID 新增到成員函式。
    3. ID要小於65535
  • 使用流程:

    1. 新增對映函式:

      afx_msg void MYIDFunc(UINT id);
    2. 新增訊息對映:

      BEGIN_MESSAGE_MAP(XXXXXX, YYYYYY)
      ON_WM_CREATE()
       //...................................................   
      ON_COMMAND_RANGE(nIDFirst, nIDFirst + IDMAX_COUNT, &XXXXXXX::MYIDFunc) //.................................................... ON_WM_SETCURSOR() END_MESSAGE_MAP()
    3. 響應函式實現:

      void CMainFrame::MYIDFunc(UINT id)
      {
      if(id < nIDFirst || id > nIDFirst + IDMAX_COUNT)
       {
           return;
       }
      switch (id)
      {
      case
      nIDFirst: //...... break; case nIDFirst+1: //...... break; } }