Форум: "WinAPI";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
ВнизМеню: при добавлении пунктов они становятся 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c