Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как в меню добавить картинки к определенным пунктам??? / 7 сообщений из 7, страница 1 из 1
14.08.2003, 12:00
    #32236351
Hunter_eea
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в меню добавить картинки к определенным пунктам???
Как в меню добавить картинки к определенным пунктам???
...
Рейтинг: 0 / 0
14.08.2003, 12:44
    #32236441
Ой Вэй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в меню добавить картинки к определенным пунктам???
SetMenuItemBitmaps() или CMenu::SetMenuItemBitmaps() (это если MFC).
Замечание: bitmap, о котором там идёт речь, должно существовать во время отображения меню.

Ещё можно через owner draw.
...
Рейтинг: 0 / 0
14.08.2003, 14:17
    #32236649
Hunter_eea
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в меню добавить картинки к определенным пунктам???
Это не совсем то, так по одной картинке,
у меня есть Bitmap где нарисованы уже все кнопки(для тулбара), вот как из нее эти картинки приляпать
...
Рейтинг: 0 / 0
14.08.2003, 15:05
    #32236742
Ой Вэй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в меню добавить картинки к определенным пунктам???
Ты же про это ничего не писал, так что это уже второй вопрос :)

У меня тоже картинки в тулбаре, я создаю упомянутые bitmap с помощью CImageList::ExtractIcon() и DrawIconEx(). Image list получаю с помощью CToolBarCtrl::GetImageList().

Всё понятно? :)) показать текст, который это делает?
...
Рейтинг: 0 / 0
14.08.2003, 15:45
    #32236825
Hunter_eea
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в меню добавить картинки к определенным пунктам???
Да если можно кусочек кода
...
Рейтинг: 0 / 0
14.08.2003, 16:17
    #32236889
vdimas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в меню добавить картинки к определенным пунктам???
www.codeproject.com

зело рекомендую туда со всеми подобными вопросами, просто сборник решебников по всевозможным вопросам.
Конкретно по твоему смотри раздел MFC Menu, - 10-ки решений.
...
Рейтинг: 0 / 0
14.08.2003, 16:18
    #32236893
Ой Вэй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в меню добавить картинки к определенным пунктам???
Большой получился кусок... спрашивай.

Код: plaintext
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.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
int CMainFrame::AssignMenuImages()
{
    //меню
    CMenu menu;
    menu.LoadMenu(IDM_...);

    CToolBar* pIconBar = NULL;
    //список идентификаторов тулбаров в ресурсах
    UINT aIconBarID[] =
    {
        IDT_...,
        IDT_...,
        ...
    }, nIconBars = sizeof(aIconBarID)/sizeof(UINT),nBarID;
    DWORD dwToolStyle   = WS_CHILD | CBRS_TOOLTIPS;
    DWORD dwToolExStyle = TBSTYLE_FLAT | TBSTYLE_TRANSPARENT | TBSTYLE_DROPDOWN;
    CRect rn = CRect( 0 , 0 , 0 , 0 );

    CBrush brush ((COLORREF)RGB( 255 , 255 , 255 ));
    TBBUTTON bt;
    BOOL kz;

    for(UINT nIconBar= 0 ; nIconBar<nIconBars; nIconBar++)
    {
        nBarID = aIconBarID[nIconBar];
        pIconBar = new CToolBar;
        pIconBar->CreateEx(this,dwToolExStyle,dwToolStyle,rn,nBarID);
        pIconBar->LoadToolBar(nBarID);

        CToolBarCtrl& toolBar = pIconBar->GetToolBarCtrl();
        CImageList* pIL = toolBar.GetImageList();
        if(pIL == NULL)
            continue;

        UINT nImages = pIL->GetImageCount();
        UINT nButtons = toolBar.GetButtonCount();
        for(UINT nButton =  0 ; nButton < nButtons; nButton++)
        {
            toolBar.GetButton(nButton,&bt);
            if(bt.iBitmap < nImages && bt.idCommand !=  0 )
            {
                HICON hIcon = pIL->ExtractIcon(bt.iBitmap);

                CClientDC wDC(this);

                CDC dc;
                dc.CreateCompatibleDC(&wDC);

                CBitmap* pbmp  = new CBitmap;
                pbmp ->CreateCompatibleBitmap(&wDC, 20 , 20 );

                CBitmap* pbmpOld = dc.SelectObject(pbmp);
                DrawIconEx(dc.m_hDC, 0 , 0 ,hIcon, 20 , 20 , 0 ,brush,DI_IMAGE);

                kz = menu.SetMenuItemBitmaps(bt.idCommand,MF_BYCOMMAND,pbmp,NULL);
                if(!kz)
                    delete pbmp;

                //тут надо ещё записать pbmp в список, чтобы не забыть потом delete

                dc.SelectObject(pbmpOld);

                BOOL l = DestroyIcon(hIcon);
            }
        }

        delete pIconBar;
    }

    return  0 ;
}
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как в меню добавить картинки к определенным пунктам??? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]