Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Меню [D5, D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]


Nick Denry ©   (2003-03-11 20:59:00) 

Здравствуйте! Подскажите плз!
загружаю меню из ресурса {Меню}
menu:=loadMenu(hInstance,"RB_MENU");
sub_menu:=GetSubMenu(Menu,0);

Но незнаю как к нему картинку правильно добавить!
Я делаю так:
//InfoMenu - типа TMenuItemInfo
Bitmap1:=LoadBitmap(hInstance,"b2m");
bitmap2:=LoadBitMap(hInstance,"b1m");
bitmap3:=LoadBitMap(hInstance,"b3m");
bitmap4:=LoadBitMap(hInstance,"b4m");
bitmap5:=LoadBitmap(hInstance,"b5m");

{InfoMenu1}
MnuInf1.cbSize:=sizeof(MnuInf1);
MnuInf1.fMask:={MIIM_ID+}MIIM_STATE+MIIM_BITMAP;
MnuInf1.fState:= MFS_DEFAULT;
MnuInf1.hbmpItem:=bitmap1;
{InfoMenu2}
MnuInf2.cbSize:=sizeof(MnuInf2);
MnuInf2.fMask:={MIIM_ID+}MIIM_STATE+MIIM_BITMAP;
MnuInf2.fState:= MFS_DEFAULT;
{MnuInf2.wID:=IDM2;}
MnuInf2.hbmpItem:=bitmap2;
{InfoMenu3}
MnuInf3.cbSize:=sizeof(MnuInf3);
MnuInf3.fMask:={MIIM_ID+}MIIM_STATE+MIIM_BITMAP;
MnuInf3.fState:= MFS_DEFAULT;
{MnuInf3.wID:=IDM3;}
MnuInf3.hbmpItem:=bitmap3;
{InfoMenu4}
MnuInf4.cbSize:=sizeof(MnuInf4);
MnuInf4.fMask:={MIIM_ID+}MIIM_STATE+MIIM_BITMAP;
MnuInf4.fState:= MFS_DEFAULT;
{MnuInf4.wID:=IDM4;}
MnuInf4.hbmpItem:=bitmap4;
{InfoMenu5}
MnuInf5.cbSize:=sizeof(MnuInf5);
MnuInf5.fMask:={MIIM_ID+}MIIM_STATE+MIIM_BITMAP;
MnuInf5.fState:= MFS_DEFAULT;
{MnuInf5.wID:=IDM4;}
MnuInf5.hbmpItem:=bitmap5;

result1:=SetMenuItemInfo(sub_menu,ID_RESTORE,false,MnuInf1);
if result1=false then MessageBox(MainWnd,"Error!","SystemCD",mb_ok);
result1:=SetMenuItemInfo(sub_menu,ID_MINIMIZE,false,MnuInf2);
if result1=false then MessageBox(MainWnd,"Error!","SystemCD",mb_ok);
result1:=SetMenuItemInfo(sub_menu,ID_OPENCD,false,MnuInf4);
if result1=false then MessageBox(MainWnd,"Error!","SystemCD",mb_ok);
result1:=SetMenuItemInfo(sub_menu,ID_CLOSECD,false,MnuInf5);
if result1=false then MessageBox(MainWnd,"Error!","SystemCD",mb_ok);
result1:=SetMenuItemInfo(Sub_menu,ID_QUIT,false,MnuInf3);
if result1=false then MessageBox(MainWnd,"Error!","SystemCD",mb_ok);
SetMenuDefaultItem(Sub_Menu,ID_RESTore,0);

Но когда на пункт выпавшего меню наводится мышь картинка становится негативом, а текст само -собой инвертируется!
Как сделать так, что бы картинка не была негативом!

Заранее спасибо, N.D.


Evgeny   (2003-03-13 04:59:00) [1]

в Help`е на эту тему имеется полностью готовый пример. Смотри файл win32.hlp


nikkie   (2003-03-12 13:54:00) [2]

MnuInf.fType = MFT_OWNERDRAW
и обработка сообщений WM_MEASUREITEM, WM_DRAWITEM


Nick Denry   (2003-03-11 23:47:00) [3]

Хотябы ф-ции назовите!


Наверх

Титульная страница Поиск, карта сайта Написать письмо