Создание меню
А как контекстное?
Код:
LoadMenu(hInstance, 'MENU');
Или проще. Вот код:
Код:
program demo;
uses
windows, messages;
var
wnd: hwnd;
msg: tmsg;
wndclass: twndclass;
function windowproc(wnd: hwnd; msg: word; wparam: wparam; lparam: lparam):
longint; stdcall
begin
result:=0;
case msg of
wm_destroy: begin
postquitmessage(0);
exit;
end;
end;
result:=defwindowproc(wnd,msg,wparam,lparam);
end;
begin
wndclass.style:=cs_hredraw or cs_vredraw;
wndclass.lpfnWndProc:=@windowproc;
wndclass.hCursor:=loadcursor(0,idc_arrow);
wndclass.hbrBackground:=color_btnface;
wndclass.lpszClassName:='demo';
registerclass(wndclass);
wnd:=createwindow('demo','demo',ws_overlappedwindow,0,0,640,480,0,0,0,nil);
showwindow(wnd,sw_show);
updatewindow(wnd);
while getmessage(msg,0,0,0) do begin
translatemessage(msg);
dispatchmessage(msg);
end;
end.
uses
windows, messages;
var
wnd: hwnd;
msg: tmsg;
wndclass: twndclass;
function windowproc(wnd: hwnd; msg: word; wparam: wparam; lparam: lparam):
longint; stdcall
begin
result:=0;
case msg of
wm_destroy: begin
postquitmessage(0);
exit;
end;
end;
result:=defwindowproc(wnd,msg,wparam,lparam);
end;
begin
wndclass.style:=cs_hredraw or cs_vredraw;
wndclass.lpfnWndProc:=@windowproc;
wndclass.hCursor:=loadcursor(0,idc_arrow);
wndclass.hbrBackground:=color_btnface;
wndclass.lpszClassName:='demo';
registerclass(wndclass);
wnd:=createwindow('demo','demo',ws_overlappedwindow,0,0,640,480,0,0,0,nil);
showwindow(wnd,sw_show);
updatewindow(wnd);
while getmessage(msg,0,0,0) do begin
translatemessage(msg);
dispatchmessage(msg);
end;
end.
Просто пустое окно. Что мне дописать. И как этот res файл с меню создать.
Если ты создаешь окна в runtime а не грузишь из ресурсов, то и меню тебе нужно будет создавать также. Посмотри справку по WinAPI-функциям CreateMenu, InsertMenuItem/InsertMenu/AppendMenu, и т.д и т.п.
Цитата: Zbyszek
Да-а-а? и что же мешает загрузить меню из ресурсов при создании всего остального в runtime'е?
А зачем это делать? Если уж создавать что-то из ресурсов,то создавать всё, тоже самое и для runtime'а. Но это лишь имхо.
Вернее даже сказать главное окно (ну и дочерние если MDI).
Диалоги - конечно с ресурсов.
Все OK. Разобрался я с функциями CreateMenu, CreatePopupMenu, InsertMenu и т.д. Спасибо большооооооооооооооооооооооооооое!А вот про загрузку окна и меню из ресурсов первый раз слышу!!! Это как? :eek:
здесь и здесь - две книги по Delphi, там есть примеры работы с ресурсами. Не помню, правда, есть ли там загрузка окон/меню из ресурсов.
Диалоги можно создавать ф-ей CreateDialog, а меню - LoadMenu, есть еще функции для загрузки из ресурсов других типов данных, например, LoadImage, LoadString и т.д...
Посмотри
Диалоги можно создавать ф-ей CreateDialog, а меню - LoadMenu, есть еще функции для загрузки из ресурсов других типов данных, например, LoadImage, LoadString и т.д...