function createmenuitem( hmenu, submenu: hmenu; cap: pchar; _uid, _wid: uint; sep: boolean ): boolean; var mi: menuiteminfo; begin with mi do begin cbsize := sizeof( mi ); fmask := miim_state or miim_type or miim_submenu or miim_id; if not sep then ftype := mft_string else ftype := mft_separator; fstate := mfs_enabled; wid := _wid; hsubmenu := submenu; dwitemdata := 0; dwtypedata := cap; cch := sizeof( cap ); end; result := insertmenuitem( hmenu, _uid, false, mi ); end;
function windowproc( wnd: hwnd; msg: uint; wparam: wparam; lparam: lparam ): lresult; stdcall; begin case msg of wm_destroy: begin postquitmessage( 0 ); result := 0; exit; end; wm_command: begin case loword( wparam ) of sexit: postmessage( wnd, wm_quit, 0, 0 ); scopy: messagebox( wnd, 'Пункт: copy', 'Меню: edit', 0 ); scut: messagebox( wnd, 'Пункт: cut', 'Меню: edit', 0 ); spaste: messagebox( wnd, 'Пункт: paste', 'Меню: edit', 0 ); sselect: begin if check then checkmenuitem( submenucheck, sselect, mf_unchecked ) else checkmenuitem( submenucheck, sselect, mf_checked ); check := not check; end; ssecondlevel: messagebeep( mb_iconhand ); end; end; else result := defwindowproc( wnd, msg, wparam, lparam ); end; end;
// Цикл обработки сообщений while getmessage( msg, 0, 0, 0 ) do begin translatemessage( msg ); dispatchmessage( msg ); end; halt( msg.wparam ); end.
Вот нашел щас буду учить)
Цитата
setmenu function setmenu( hwnd: hwnd; hmenu: hmenu ): bool; Функция setmenu связываем новое меню с окном. hwnd Идентификатор окна, которому должно быть назначено новое меню. hmenu Идентификатор меню, которое должно быть назначено окну. Если этот параметр нулевой, текущее меню окна удаляется.
Это не понятно, или у меня не что не связалось или не увидел