Я пытаюсь изменить системное меню окна, используя InsertMenuItem (вместо InsertMenu - причина в том, что я хочу в конечном итоге вставить подменю). Язык C #.
Попытка вставки нового элемента, попытка получить существующий элемент и вставить его заново, он вставляется, но строка элемента отображается в меню только как первый символ. Кто-нибудь знает, что мне не хватает?
// try creating one from scratch
MENUITEMINFO it = new MENUITEMINFO();
it.cbSize = (uint)Marshal.SizeOf(it);
it.fMask = 64;// MIIM_STRING
it.wID = 12345;
it.dwTypeData = "Now is the time";
it.fType = 0;
it.cch = 0;
InsertMenuItem(hSysMenu, 7, true, ref it);
//try copying one
GetMenuItemInfo(hSysMenu, (uint)0, true, ref it);
it.cch += 10;
it.dwTypeData = new string(' ', (int)(menuItemInfo.cch+10));
GetMenuItemInfo(hSysMenu, (uint)0, true, ref it);
it.wID = 123456;
var err = InsertMenuItem(hSysMenu, 1, true, ref it);
Результат приведенного выше кода