PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Стили из библиотеки


Стили из библиотеки

Сообщений 1 страница 3 из 3

1

Решил разобраться как работает библиотека стилей XP_Menu_Lib, но полазив по форумам так и не понял. Здесь прочитал, что для нее нужно создать системный обработчик событий с помощью SetWindowCallback(), но не пойму как это делается. И что такое XP_Menu_CB(WindowID, Message, wParam, lParam) и XP_MenuRegister(HandeMenu, State, MenuType). Вообщем если не сложно можете объяснить и создать простой пример..

0

2

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

0

3

Спасибо!

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Стили из библиотеки