RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'Dropdown'에 해당되는 글 1
원본 : http://www.debuglab.com/knowledge/toolbardrop.html

1.요약

툴바 버튼에 DropDown버튼을 넣는 방법


2.본문

DropDown버튼을 눌렀을 때 메뉴가 나타나게하는것을 예로 들어 설명.

1) 툴바를 생성한다. (Create())

2) 버튼 옆에 화살표 버튼을 생성시키기 위해 다음과 같이 스타일을 지정해 준다.

m_wndToolBar.GetToolBarCtrl().SetExtendedStyle( 

                                               TBSTYLE_EX_DRAWDDARROWS); 

3) 버튼이 생성 되길 원하는 버튼의 스타일도 다음과 같이 수정해 준다.

DWORD dwStyle = m_wndToolBar.GetButtonStyle( 

                                            m_wndToolBar.CommandToIndex(ID_DROPDOWN)); 

dwStyle |= TBSTYLE_DROPDOWN; 

m_wndToolBar.SetButtonStyle(m_wndToolBar.CommandToIndex   

                            (ID_DROPDOWN), dwStyle); 

4) Arrow버튼을 눌렀을 경우에 대한 메세지 처리를 위해 Mainfr.h에 다음과 같이 선언하고

afx_msg void OnToolbarDropDown(NMTOOLBAR* pnmh, LRESULT* 

                               plRes); 

MainFrm.cpp의 message map에도 다음과 같이 입력해 주고,

ON_NOTIFY(TBN_DROPDOWN, AFX_IDW_TOOLBAR,     

          OnToolbarDropDown) 

메뉴를 띄우기 위해 함수를 다음과 같이 구현 한다.

void CMainFrame::OnToolbarDropDown(NMTOOLBAR* pnmtb, LRESULT 

          *plr) 

{ 

    CWnd *pWnd; 

    UINT nID; 

    

    // Switch on button command id's. 

    switch (pnmtb->iItem) 

    { 

    case ID_DROPDOWN: 

        pWnd = &m_wndToolBar; 

        nID  = IDR_MENU1; 

        break; 

    default: 

        return; 

    } 

    

    // load and display popup menu 

    CMenu menu; 

    menu.LoadMenu(nID); 

    CMenu* pPopup = menu.GetSubMenu(0); 

    ASSERT(pPopup); 

    

    CRect rc; 

    pWnd->SendMessage(TB_GETRECT, pnmtb->iItem, (LPARAM)&rc); 

    pWnd->ClientToScreen(&rc); 

    

    pPopup->TrackPopupMenu( TPM_LEFTALIGN | TPM_LEFTBUTTON |   

        TPM_VERTICAL, rc.left, rc.bottom, this, &rc); 

} 

이렇게 한 후 프로그램을 실행 시켜보면 ID_DROPDOWN ID에 해당하는 버튼옆에 작은 화살표 버튼이 나타나고 그 버튼을 누르면 ID_MENU1 메뉴가 나타나게 된다.



- 2001.08.13 Smile Seo -
이올린에 북마크하기(0) 이올린에 추천하기(0)
2007/02/23 10:07 2007/02/23 10:07
http://www.webdizen.net/blog/trackback/2634
[로그인][오픈아이디란?]
webdizen:이 세상에 존재하는 모든 데이터를 체계화하고, 효과적으로 분석하는 그 날까지 이 재미난 연구를 계속해 나갈 생각입니다.

현재 OLAP, Data Warehouse, Data Mining, Cloud Computing, MapReduce, Data Modeling에 대해서 연구하고 있습니다.
이 세상에 존재하는 모든 데이터를 체계화하고, 효과적으로 분석하는 그 날까지 이 재미난 연구를 계속해 나갈 생각입니다. 현재 OLAP, Data Warehouse, Data Mining, Cloud Computing, MapReduce, Data Modeling에 대해서 연구하고 있습니다.
전체 (3018)
Webdizen (145)
Hardware (121)
Software (120)
Windows (5)
Unix & Linux (120)
Cloud Computing (3)
Programming (807)
Data Modeling (0)
Database (105)
Data Warehouse (2)
Data Mining (4)
Network (66)
Web (80)
Security (91)
Embedded (70)
Multimedia (27)
Mobile (14)
Graphic (24)
Management (633)
Knowledge (581)
«   2010/09   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
  1. yundream의 프로그래밍 이야기  03/10
    printf,scanf를 이용한 형식화된 입출력
  2. 은마군의 나태블록  2009
    파일 열기/저장하기 CFileDialog
  3. 상우 :: Oranzie's BLOG  2008
    World IT Show 2008
  4. 3인3색  2008
    cvs서버 설치하기
  5. PHP와 Web 2.0  2007
    속속 공개되는 Google Chart Maker
  1. 2010/09 (2)
  2. 2010/08 (2)
  3. 2010/07 (2)
  4. 2010/05 (1)
  5. 2010/04 (2)