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

Вниз

Как создать на API PopUP меню   Найти похожие ветки 

 
Neep   (2003-03-04 11:33) [0]

Как создать на API PopUP меню с возможностью обрабатывать WM_DRAWITEM. Я в этих сообщениях запутался. Может у кого есть готовый пример, как это делается.


 
Игорь Шевченко   (2003-03-04 11:41) [1]

Посмотри код VCL - Menus.pas - там все на API


 
Neep   (2003-03-04 13:42) [2]

Я туда сразу полез, но там запутано очень, все сделано через классы и свои переменные


 
Игорь Шевченко   (2003-03-04 13:47) [3]

Общий смысл - CreatePopupMenu, InsertMenuItem (здесь указывать, что OWNERDRAW), TrackPopupMenu(Ex) при вызове.


 
Neep   (2003-03-04 14:20) [4]

Все это понятно, непонятно как обработать сообщение WM_DRAWITEM, когда мыша наводится на пункт меню и когда уходит с него, нужно перерисовать, а оно неполючается.


 
Игорь Шевченко   (2003-03-04 15:13) [5]

Родительскому окну посылаются сообщения WM_MEASUREITEM/WM_DRAWITEM.


 
МДа..   (2003-03-04 22:55) [6]

Если у тебя получается обработать для любого другого меню, то вопрос исчерпан. Все происходит точно так же. На WM_CREATE установил MFT_OWNERDRAW для итема, в первый раз, когда вызывается итем, обработал WM_MEASURE, и рисуй, что душе угодно в обработчике WM_DRAWITEM.

Весьма доходчиво все это изложено в WIN32SDK.HLP раздел - Creating Owner-Drawn Menu Items. Смотреть по указателю.


 
Neep   (2003-03-05 13:20) [7]

Спасибо за советы, я уже разобрался с этим



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

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

Наверх





Память: 0.46 MB
Время: 0.007 c
1-12689
anbezr
2003-04-21 14:53
2003.05.05
IsColorBright


11-12686
SPeller
2002-07-20 05:26
2003.05.05
Отрисовка компонентов в RunTime


1-12751
$Hic0
2003-04-21 16:22
2003.05.05
TMemo, TRichEdit


14-12928
Алекс
2003-04-16 17:11
2003.05.05
Программирование


1-12810
Nomad
2003-04-22 12:22
2003.05.05
Сравнение строк, передаваемых в качестве параметров в функцию





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