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

Вниз

Загрузка меню из ресурса   Найти похожие ветки 

 
kalishenko   (2003-11-21 12:38) [0]

Подскажите, пожалуйста, в чем ошибка нижеприведенного кода? Я пытаюсь загрузить из dll-ки меню, помещенное в ресурс этой библиотеки. В ресурсе меню называется 101 и библиотека 100% откомпилена.

hLib: Cardinal;

procedure PopupMyMenu(hWnd: THandle);
var Menu: hMenu;
P: TPoint;
begin
Menu := LoadMenu(hLib, "#101"); //пробовал вместо #101 ставить 101 - эффекта никакого
GetCursorPos(P);
SetForegroundWindow(hWnd);
TrackPopupMenu(Menu, TPM_LEFTBUTTON, P.X, P.Y, 0, hWnd, NIL);
PostMessage(hWnd, WM_NULL, 0, 0);
DestroyMenu(Menu);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
hLib := LoadLibrary("c:\MyProject\b.dll");
PopupMyMenu(Application.Handle);
end;

Заранее благодарен.


 
Игорь Шевченко   (2003-11-21 12:42) [1]

Код файла ресурсов в студию


 
kalishenko   (2003-11-21 12:57) [2]

О каком коде файла ресурса идет речь? Ресурс я создавал в VC++ помещением меню в ресурс.


 
Игорь Шевченко   (2003-11-21 13:14) [3]

kalishenko (21.11.03 12:57)

Который на .rc кончается


 
kalishenko   (2003-11-21 13:35) [4]

У меню .res.

Вот это, что-ли? :)

яя яя и яя яя ( @ Ђ Ђ ЂЂ Ђ Ђ Ђ ЂЂ ЂЂЂ ААА я я яя я я я яя яяя Sёp Sёp Sёp {0 w Sёpp і 0FSёv p {0 ¶fSёvf і»†Sёvf`p {v»ёSёvff w»»»Sёvff` »»»Sёvfff k»‹Sёvfff ff»†Sёvfff pffkfSёvfff` pffffSёvk†f` ffffSёvk¶f` ffffSё{kёf` pffffSё{»»†` pffffSё{»»ё` ffffSёx»ё» fffSёw‹¶‹7 f`3·†fі ff`s1†`;0 pfff`ff s· fff`ff` ;p pfffffff · fffff` Fff w яАяяАяяАяяряяря?ря яЋ яЖ яа р ?р ?р а а А А А А А А а а а р р ш aь шю ьяЂюяаяяяяя 0 яя M A I N I C O N и яя яяe 0" Ђ яяT e s t


 
Игорь Шевченко   (2003-11-21 13:44) [5]


> В ресурсе меню называется 101


Что есть 101 - символьный идентификатор или цифровой ?

ЧТО ГОВОРИТ GetLastError ?!


 
kalishenko   (2003-11-21 13:58) [6]

101-символьный идентификатор.
А GetLastError ничего не говорит, т.е. по-идее меню в ресурсе найдено.


 
Игорь Шевченко   (2003-11-21 14:34) [7]

kalishenko (21.11.03 13:58)

А цикл выборки сообщений Пушкин будет делать ?
По идее - это не аргумент


 
kalishenko   (2003-11-21 15:20) [8]

Дело в том, что если вместо TrackPopupMenu поставить SetMenu(hwnd, menu), где hwnd - хендл окна, то все работает. Т.е. меню появляестя сверху формы (отсюда следует, что МЕНЮ В РЕСУРСЕ НАЙДЕНО!).

Но как отобразить PopupMenu? Оно то отображается, но ввиде пустышки. Может при создании ресурса необходимо как-то конкретно указывать, что это не обычное, а PopupMenu.............?


 
kalishenko   (2003-11-21 16:19) [9]

>>А цикл выборки сообщений ...

О каком цикле выборки сообщений идет речь? Я пока не отлавливаю нажатие на конкретном пункте меню. Я просто пока пытаюсь его вывести.


 
clickmaker   (2003-11-21 16:38) [10]

// rc

101 MENU DISCARDABLE
BEGIN
POPUP "MY_COOL_MENU"
BEGIN
MENUITEM "Item1", CM_COMMAND1
...
END
END

// pas

hMenu = LoadMenu(hInstance, "101");
hPopup = GetSubMenu(hMenu, 0);
TrackPopupMenu(hPopup, ...


 
kalishenko   (2003-11-27 16:26) [11]

Вопрос от несведущего: где можно создать этот самый *.rc файл в том виде, который описал clickmaker:

101 MENU DISCARDABLE
BEGIN
POPUP "MY_COOL_MENU"
BEGIN
MENUITEM "Item1", CM_COMMAND1
...
END
END


 
clickmaker   (2003-11-27 16:34) [12]


> kalishenko (27.11.03 16:26) [11]

Borland Resource WorkShop, MS Visual C, да хоть в Блокноте: файл же текстовый


 
kalishenko   (2003-11-27 16:39) [13]

А компилить его вообще нужно?


 
kalishenko   (2003-11-27 16:48) [14]

И не подскажете, где находится этот Borland Resource WorkShop.


 
clickmaker   (2003-11-27 17:37) [15]


> kalishenko (27.11.03 16:48) [14]

На любой компашке с дельфи обычно бывает


 
kalishenko   (2003-11-27 18:00) [16]

Спасибо, нашел. А теперь вопрос следующий: можно поподробней объяснить, как обрабатывать нажатия на конкретном пункте моего меню.


 
kalishenko   (2003-11-27 19:56) [17]

Все равно меню не появляется. У кого нибудь есть исходники с живыми примерами (и ресурсами, *.rc или *.res)?



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

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

Наверх





Память: 0.47 MB
Время: 0.027 c
14-16660
АлексейК
2004-01-17 11:42
2004.02.06
Оффшорное программирование.


3-16032
andre_zsk
2004-01-13 11:19
2004.02.06
Балансы на Delphi


1-16456
Галинка
2004-01-28 06:43
2004.02.06
О типах данных в Delphi


3-16196
jack128
2004-01-13 13:39
2004.02.06
Пример работы с курсором


4-16790
timon
2003-12-02 06:46
2004.02.06
Дискета





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский