Решил разобраться как работает библиотека стилей 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 | Вопросы по PureBasic | 02.03.2025 |
| Захотел создать канвас | PureBasic для Windows | 28.01.2024 |
| Чёрные вкладки в IDE | OpenSource | 21.08.2025 |
| Установка и настройка SpiderBasic | SpiderBasic | 21.06.2025 |