![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Меню [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]Хотябы ф-ции назовите!