Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.19;
Скачать: CL | DM;

Вниз

Меню: при добавлении пунктов они становятся Disabled   Найти похожие ветки 

 
GrayFace ©   (2005-12-29 12:25) [0]

Вот код:
var m:HMenu; mi:TMenuItemInfo;

  m:=GetMenu(hwnd);
  if m=0 then RaiseLastOSError;
  with mi do
  begin
    cbSize:=SizeOf(mi);
    fMask:=MIIM_ID or MIIM_TYPE or MIIM_SUBMENU;
    fType:=MFT_STRING;
    hSubMenu:=CreateMenu;
    wID:=$100;
    dwTypeData:="WoG Tools";
  end;
  if not InsertMenuItem(m, 4, true, mi) then RaiseLastOSError;
  m:=mi.hSubMenu;
   
   // Если брать уже существующее осн. меню, та же история
   
  if m=0 then RaiseLastOSError;
    with mi do
    begin
      fMask:=MIIM_ID or MIIM_TYPE or MIIM_STATE;
      wID:=$101;
      fState:=0;
      dwTypeData:="aaa";
      fType:=MFT_STRING;
      if not InsertMenuItem(m, 1, true, mi) then RaiseLastOSError;
    end;
  DrawMenuBar(hwnd);

По идее, пункт должен быть активным.


 
Rouse_ ©   (2005-12-29 12:56) [1]

function CustomizeMenu(const Menu: HMENU): Boolean; stdcall;
const
 IDC_MENUITEM_CAPTION = "CustomMenu from DLL";
 IDC_MENUITEM_CAPTION_LEN = Length(IDC_MENUITEM_CAPTION) + 1;
var
 Item: TMenuItemInfo;
 ID: Integer;
begin
 ZeroMemory(@Item, SizeOf(TMenuItemInfo));
 ID := GetMenuItemCount(Menu);
 with Item do
 begin
   cbSize := SizeOf(TMenuItemInfo);
   fMask := MIIM_TYPE or MIIM_ID;
   fType := MFT_SEPARATOR;
 end;
 Result := InsertMenuItem(Menu, ID, True, Item);
 if not Result then Exit;
 Inc(ID);
 with Item do
 begin
   cbSize := SizeOf(TMenuItemInfo);
   fMask := MIIM_TYPE or MIIM_ID;
   fType := MFT_STRING;
   Item.dwTypeData := PChar(IDC_MENUITEM_CAPTION);
   Item.cch := IDC_MENUITEM_CAPTION_LEN;
   Item.wID := ID;
 end;
 Result := InsertMenuItem(Menu, ID, True, Item);
end;


 
GrayFace ©   (2005-12-29 20:12) [2]

Спасибо. Теперь хоть ясно, что мой код правильный. С вашей функцией та же проблема. Значит, все сложнее.
Ситуация такова: У меня внедрина dll в чужое приложение, оконную процедуру подключил, теперь охота в меню добавить свои фичи.
Проверил - само приложение не disable"ит менюшку.

Что это может быть?

(вообще, приложение - редактор карт Heroes 3 WoG)



Страницы: 1 вся ветка

Текущий архив: 2006.03.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.038 c
2-1141392347
RomanH
2006-03-03 16:25
2006.03.19
Умный ComboBox


2-1141394071
n_sch
2006-03-03 16:54
2006.03.19
Помогите разобраться с DBRichEdit !!!


1-1139856622
Дубинка
2006-02-13 21:50
2006.03.19
Эмуляция клика


15-1140690232
IAmDanil
2006-02-23 13:23
2006.03.19
Посмотрите мой сайтик...


2-1141193058
stela
2006-03-01 09:04
2006.03.19
текстовые файлы