본문으로 바로가기

CMenu에 Image 추가하기

category 개발언어/c++ 2017. 8. 9. 18:03

CMenu는 각각

메뉴 생성시 이미지를 추가하는 방법과
BOOL InsertMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp );
메뉴의 이미지를 변경한 방법
BOOL SetMenuItemBitmaps( UINT nPosition, UINT nFlags, const CBitmap* pBmpUnchecked, const CBitmap* pBmpChecked );
을 제공하고 있다.

head에
CBitmap bmp; 을 선언하고

메뉴가 생성될 때 아래 예와 같이 이미지가 로드되지 않았으면 이미지 로딩을 하고 처리해 주면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
if(!bmp.GetSafeHandle())
        bmp.LoadBitmap(IDB_STATUS_START);
    if(!m_MenuFunction.GetSafeHmenu())
    {  
        m_MenuFunction.CreatePopupMenu();
        m_MenuFunction.InsertMenu(MF_BYCOMMAND,MF_STRING,ID_MANUAL_SEQ,"Run Selected Item");
        m_MenuFunction.InsertMenu(MF_BYCOMMAND,MF_STRING,WM_SET_ENABLE,"Set Enable Item");
        m_MenuFunction.InsertMenu(MF_BYCOMMAND,MF_STRING,WM_SET_SKIP,"Set Disable Item");
        m_MenuFunction.InsertMenu(MF_BYCOMMAND,MF_STRING,WM_SET_STOP,"Set Break Point");
        m_MenuFunction.InsertMenu(MF_BYCOMMAND,MF_STRING,WM_SET_START,"Set Restart Point");
        m_MenuFunction.SetMenuItemBitmaps(WM_SET_START,MF_BYCOMMAND,&bmp,&bmp);         
    }   
    m_MenuFunction.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,this,NULL);