ON_MESSAGE(MY_MSG_2, HandleMenu2)

ON_MESSAGE(MY_MSG_4, HandleMenu4)

ON_COMMAND(0x12345678, HandleMenu)

ON_COMMAND(0x22345679, HandleMenu_1)


CMenu menu, sub;

menu.CreatePopupMenu();

sub.CreatePopupMenu();

menu.AppendMenu(MF_STRING, 0x12345678,_T("NEW.."));

menu.AppendMenu(MF_STRING, 0x22345679,_T("NEW..."));

menu.AppendMenu(MF_STRING|MF_POPUP,(UINT_PTR)sub.GetSafeHmenu(),         _T("++++++"));

sub.AppendMenu(MF_STRING, MY_MSG_2, _T("NEW...."));

sub.AppendMenu(MF_SEPARATOR);

sub.AppendMenu(MF_STRING, MY_MSG_4, _T("NEW"));

ClientToScreen(&point);

menu.TrackPopupMenu(/*TPM_CENTERALIGN|*//*TPM_RIGHTBUTTON*/TPM_LEFTBUTTON,  point.x, point.y, this);


BOOL CScrollTestDlg::PreTranslateMessage(MSG*pMsg)

{

   if(pMsg->hwnd == m_hWnd)

   {

       if(pMsg->message == WM_COMMAND)

       {

           if(pMsg->wParam == 0x12345678)

           {

               int i = 0;

           }

           if(pMsg->wParam == 0x22345679)

           {

               int i = 0;

           }

           if(pMsg->wParam == MY_MSG_2)

           {

               PostMessage(MY_MSG_2,pMsg->wParam, pMsg->lParam);

           }

           if(pMsg->wParam == MY_MSG_4)

           {

               PostMessage(MY_MSG_4,pMsg->wParam, pMsg->lParam);

           }

       }

   }

   return CDialog::PreTranslateMessage(pMsg);

}


voidCScrollTestDlg::HandleMenu(void)

{

   int i = 0;

}


voidCScrollTestDlg::HandleMenu_1(void)

{

   int i = 0;

}


LRESULTCScrollTestDlg::HandleMenu2(WPARAM wParam, LPARAM lParam)

{

   return 0;

}

LRESULTCScrollTestDlg::HandleMenu4(WPARAM wParam, LPARAM lParam)

{

   return 0;

}