Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Вниз

Menu средствами Windows API   Найти похожие ветки 

 
oleg_SYS ©   (2005-02-16 16:21) [0]

Уважаемые мастера, мне очень нужен пример создания Menu (как TPopupMenu в VCL) средствами Windows API, разумеется, с подменю и с определением выбранного элемента. Того, кто мне поможет, ждёт символическое вознаграждение: 8-значный XY номер от ICQ 52552552 с пм.

Связаться со мной можно по асе 446467 или мылу oleg_SYS@mail.ru

Спасибо!


 
dimaxx ©   (2005-02-16 20:23) [1]

Могу предложить только набор функций для создания меню, а реализация - эт за тобой.


 
oleg_SYS ©   (2005-02-16 20:55) [2]

dimaxx, информация о меню с помощью апи в интернете есть, но когда начинаю реализовывать, меню то не создаётся вовсе, то становится толшиной 5 пикселов, а мне нужно срочно заканчивать программу.


 
Kerk ©   (2005-02-16 21:01) [3]

выдрано из моего исходника (поэтому немного лишнего тут :))
procedure ShowMenu;
var
 P: TPoint;
 Mnu: HMENU;
begin
 Mnu := CreatePopupMenu;
 AppendMenu(Mnu,0,100,"О программе...");
 AppendMenu(Mnu,MF_SEPARATOR,0,nil);
 AppendMenu(Mnu,0,101,"Очистить статистику");
 AppendMenu(Mnu,0,102,"Закрыть");
 
 GetCursorPos(P);
 SetForegroundWindow(handleWnd);
 TrackPopupMenu(Mnu,TPM_RIGHTALIGN,P.X,P.Y,0,handleWnd,nil);
 PostMessage(handleWnd,WM_NULL,0,0);
 DestroyMenu(Mnu);
end;

procedure ProcessMenu(const ID: Word);
begin
 case ID of
   100: MessageBox(0,sMouseMonitor + " " + sVer +#13#10#13#10+
            "Dedicated to P.A.V."#13#10"c2004 Roman Jankovski aka Kerk",
            "О программе...",MB_ICONINFORMATION+MB_SETFOREGROUND);
   101: if MessageBox(0,"Очистить статистику?",
            sMouseMonitor,MB_YESNO+MB_ICONQUESTION+MB_SETFOREGROUND) = IDYES then
            begin
              SetFilePointer(F,0,nil,FILE_BEGIN);
              SetEndOfFile(F);
            end;
   102: if MessageBox(0,"Вы действительно хотите закрыть "+sMouseMonitor+"?",
            sMouseMonitor,MB_YESNO+MB_ICONQUESTION+MB_SETFOREGROUND) = IDYES then
                 DestroyWindow(handleWnd);
 end;
end;

function WindowProc(Window: HWND; aMessage, wParam,
 lParam: LongInt): LongInt; stdcall;
begin
 Result := DefWindowProc(Window,aMessage,wParam,lParam);
 case AMessage of
   CAT_WRITE: WriteToFile(wParam,lParam);
   CAT_TRAYICON:
     if (lParam = WM_LBUTTONDOWN) or (lParam = WM_RBUTTONDOWN) then ShowMenu;
   WM_DESTROY: DestroyWnd;
   WM_COMMAND: ProcessMenu(wParam);
 end;
end;


давай восьмизнак раз обещал :))))


 
oleg_SYS ©   (2005-02-16 22:01) [4]

Всё работает, асю дал :)


 
oleg_SYS ©   (2005-02-16 23:22) [5]

Всё работает, асю дал :)


 
Grief ©   (2005-02-17 07:15) [6]

Хотется спросить, а как присобачить у ентого самого попапа слева битмап? как в меню пуск 98 окон



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

Форум: "WinAPI";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.131 c
14-1110016285
Гаврила
2005-03-05 12:51
2005.03.27
Перлы из резюме :-)


1-1110659650
ALFSOFT
2005-03-12 23:34
2005.03.27
Считывание списка директорий в Combobox


3-1109616253
Arazel
2005-02-28 21:44
2005.03.27
Можно ли создать ключ без УНИКАЛЬНОСТИ? в MSSQL ?


3-1109421869
Bogdan
2005-02-26 15:44
2005.03.27
Имя поля DBGrid строками


14-1110272617
olookin
2005-03-08 12:03
2005.03.27
Win98 отказывается устанавливаться...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский