Решил разобраться как работает библиотека стилей XP_Menu_Lib, но полазив по форумам так и не понял. Здесь прочитал, что для нее нужно создать системный обработчик событий с помощью SetWindowCallback(), но не пойму как это делается. И что такое XP_Menu_CB(WindowID, Message, wParam, lParam) и XP_MenuRegister(HandeMenu, State, MenuType). Вообщем если не сложно можете объяснить и создать простой пример..
Стили из библиотеки
Страница: 1
Сообщений 1 страница 3 из 3
Поделиться228.07.2010 11:46:34
daiomik написал(а):
для нее нужно создать системный обработчик событий с помощью SetWindowCallback(), но не пойму как это делается
Примерно так
Код:
SetWindowCallback(@GlavWindowCallback())
где GlavWindowCallback() процедура - обработчик системных событий окна.
daiomik написал(а):
И что такое XP_Menu_CB(WindowID, Message, wParam, lParam)
Обработчик событий библиотеки.
daiomik написал(а):
XP_MenuRegister(HandeMenu, State, MenuType)
Это регистрация меню.
В справке библотеки XP_Menu_Lib все это написано.
Поставь текстовый курсор на имя функции и нажми F1.
Вот пример
Код:
StyleMenu.xp_menudata Procedure GlavWindowCallback(WindowID, Message, wParam, lParam) XP_Menu_CB(WindowID, Message, wParam, lParam) ; Обработчик событий библиотеки XP_Menu_Lib ProcedureReturn #PB_ProcessPureBasicEvents EndProcedure OpenWindow(4,0,0,300,100,"XP_Menu_Lib",#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered) If CreateMenu(2,WindowID(4)) MenuTitle("Файл") MenuItem(1,"Новый"+Chr(9)+"Ctrl+N") MenuItem(2,"Открыть..."+Chr(9)+"Ctrl+N") : DisableMenuItem(2,2,1) MenuItem(47,"Открыть заново"+Chr(9)+"Ctrl+N") : SetMenuItemState(2,47,1) MenuItem(3,"Сохранить"+Chr(9)+"Ctrl+N") MenuItem(4,"Сохранить как..."+Chr(9)+"Ctrl+N") : DisableMenuItem(2,4,1) : SetMenuItemState(2,4,1) MenuTitle("Правка") MenuItem(7, "Отменить") MenuItem(8,"Повторить") MenuBar() MenuItem(9, "Вырезать") MenuItem(10, "Копировать") MenuItem(11, "Вставить") MenuItem(12, "Удалить") MenuBar() MenuItem(13,"Выделить всё") EndIf SetWindowCallback(@GlavWindowCallback()) ; Установка процедуры - системного обработчика событий окон XP_MenuRegister(MenuID(2), #XP_RegMenu, #XP_RegGeneralMenu, WindowID(4)) ; Регистрация главного меню XP_SetMenuIcon(MenuID(2),1,ExtractIcon_(0,GetSystemDirectory()+"\sendmail.dll",0) ) ; Значок в пункте меню XP_GetMenuStructure(@StyleMenu) StyleMenu\TextNormalTABColor=$010FFE ; Изменяем цвет текста (красный) в не выбраных пунктах меню, после табуляции StyleMenu\TextSelectTABColor=$3F7636 ; Изменяем цвет текста (зелёный) в выбраных пунктах меню, после табуляции XP_SetMenuStructure(@StyleMenu) Repeat Event=WaitWindowEvent() Until Event = #PB_Event_CloseWindow
Поделиться328.07.2010 12:00:56
Спасибо!
Страница: 1
Похожие темы
Вопросы новичка | Вопросы по PureBasic | 23.12.2010 |
Захотел создать канвас | PureBasic для Windows | 28.01.2024 |
Marker (инструмент) | PureBasic для Windows | 08.10.2024 |
Установка и настройка SpiderBasic | SpiderBasic | 22.06.2024 |
Вопросы новичка (продолжение…) | Вопросы по PureBasic | 29.06.2024 |