로그인

검색

MoA
조회 수 13882 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄

http://support.microsoft.com/kb/242577 참고


1. ON_WM_INITMENUPOPUP 메시지 추가


BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
//}}AFX_MSG_MAP

ON_WM_INITMENUPOPUP()
END_MESSAGE_MAP()

2. OnInitMenuPopup 멤버 함수를 대화 상자 클래스에 추가 하 고 다음 코드 복사


void CTestDlg::OnInitMenuPopup(CMenu *pPopupMenu, UINT nIndex,BOOL bSysMenu)
{
    ASSERT(pPopupMenu != NULL);
    // Check the enabled state of various menu items.

    CCmdUI state;
    state.m_pMenu = pPopupMenu;
    ASSERT(state.m_pOther == NULL);
    ASSERT(state.m_pParentMenu == NULL);

    // Determine if menu is popup in top-level menu and set m_pOther to
    // it if so (m_pParentMenu == NULL indicates that it is secondary popup).
    HMENU hParentMenu;
    if (AfxGetThreadState()->m_hTrackingMenu == pPopupMenu->m_hMenu)
        state.m_pParentMenu = pPopupMenu;    // Parent == child for tracking popup.
    else if ((hParentMenu = ::GetMenu(m_hWnd)) != NULL)
    {
        CWnd* pParent = this;
           // Child windows don't have menus--need to go to the top!
        if (pParent != NULL &&
           (hParentMenu = ::GetMenu(pParent->m_hWnd)) != NULL)
        {
           int nIndexMax = ::GetMenuItemCount(hParentMenu);
           for (int nIndex = 0; nIndex < nIndexMax; nIndex++)
           {
            if (::GetSubMenu(hParentMenu, nIndex) == pPopupMenu->m_hMenu)
            {
                // When popup is found, m_pParentMenu is containing menu.
                state.m_pParentMenu = CMenu::FromHandle(hParentMenu);
                break;
            }
           }
        }
    }

    state.m_nIndexMax = pPopupMenu->GetMenuItemCount();
    for (state.m_nIndex = 0; state.m_nIndex < state.m_nIndexMax;
      state.m_nIndex++)
    {
        state.m_nID = pPopupMenu->GetMenuItemID(state.m_nIndex);
        if (state.m_nID == 0)
           continue; // Menu separator or invalid cmd - ignore it.

        ASSERT(state.m_pOther == NULL);
        ASSERT(state.m_pMenu != NULL);
        if (state.m_nID == (UINT)-1)
        {
           // Possibly a popup menu, route to first item of that popup.
           state.m_pSubMenu = pPopupMenu->GetSubMenu(state.m_nIndex);
           if (state.m_pSubMenu == NULL ||
            (state.m_nID = state.m_pSubMenu->GetMenuItemID(0)) == 0 ||
            state.m_nID == (UINT)-1)
           {
            continue;       // First item of popup can't be routed to.
           }
           state.DoUpdate(this, TRUE);   // Popups are never auto disabled.
        }
        else
        {
           // Normal menu item.
           // Auto enable/disable if frame window has m_bAutoMenuEnable
           // set and command is _not_ a system command.
           state.m_pSubMenu = NULL;
           state.DoUpdate(this, FALSE);
        }

        // Adjust for menu deletions and additions.
        UINT nCount = pPopupMenu->GetMenuItemCount();
        if (nCount < state.m_nIndexMax)
        {
           state.m_nIndex -= (state.m_nIndexMax - nCount);
           while (state.m_nIndex < nCount &&
            pPopupMenu->GetMenuItemID(state.m_nIndex) == state.m_nID)
           {
            state.m_nIndex++;
           }
        }
        state.m_nIndexMax = nCount;
    }
}


?

  1. Programming 게시판 관련

    Date2014.11.01 CategoryTool/etc ByMoA Views112596
    read more
  2. defer, async 스크립트

    Date2023.01.10 CategoryWeb ByOBG Views18901
    Read More
  3. 쿠버네티스 클러스터

    Date2022.11.11 CategoryTool/etc ByOBG Views13084
    Read More
  4. 카카오톡 웹버전 만들기

    Date2022.11.09 CategoryWeb ByOBG Views10452
    Read More
  5. 시계열 데이터 예측 모델

    Date2022.11.08 CategoryDeeplearning ByOBG Views12257
    Read More
  6. AWS VPC 피어링

    Date2022.11.03 CategoryTool/etc ByOBG Views13411
    Read More
  7. The State of AI & Art 2022

    Date2022.10.06 CategoryDeeplearning ByOBG Views21558
    Read More
  8. Stable Diffusion

    Date2022.09.27 CategoryDeeplearning ByOBG Views22618
    Read More
  9. 2048 Game in Python

    Date2022.09.22 CategoryPython ByOBG Views23166
    Read More
  10. Play Super Mario Bros with a Double Deep Q-Network

    Date2022.09.15 CategoryDeeplearning ByOBG Views20808
    Read More
  11. Creating A Fixed-Length Queue In JavaScript Using Arrays

    Date2022.09.14 CategoryWeb ByOBG Views18675
    Read More
  12. RuntimeError: CUDA error: CUBLAS_STATUS_ALLOC_FAILED ...

    Date2022.09.06 CategoryDeeplearning ByOBG Views22102
    Read More
  13. AWS 망 분리하기

    Date2022.09.06 CategoryTool/etc ByOBG Views12335
    Read More
  14. Keras를 활용한 주식 가격 예측

    Date2022.09.02 CategoryDeeplearning ByOBG Views12572
    Read More
  15. 강화학습 학습 관련 정리

    Date2022.08.10 CategoryDeeplearning ByOBG Views12073
    Read More
  16. 직접 보고 추천하는 머신러닝 & 딥러닝 & 수학 총정리(2022)

    Date2022.07.24 CategoryDeeplearning ByOBG Views17943
    Read More
  17. 파이썬 머신러닝 무료 강의 (7시간)

    Date2022.07.06 CategoryDeeplearning ByOBG Views19472
    Read More
  18. "Node.js를 떠나며" - express를 만든 TJ의 글

    Date2022.06.23 CategoryTool/etc ByOBG Views12297
    Read More
  19. Golang Tutorial for Node.js Developers, Part I.: Getting started

    Date2022.06.16 Category서버 ByOBG Views18978
    Read More
  20. What's the difference between comma separated joins and join on syntax in MySQL?

    Date2022.06.09 CategoryDatabase ByOBG Views17562
    Read More
  21. Building Pitaya, Wildlife’s own scalable game server framework

    Date2022.06.07 Category서버 ByOBG Views19523
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 18 Next
/ 18