Как сделать вывод комментария внизу окна при нажатии на кнопку в menu bar?
спасибо.
Отредактировано portotiv (31.08.2012 19:27:04)
PureBasic - форум |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » PureBasic - форум » Вопросы по PureBasic » вывод комментария
Как сделать вывод комментария внизу окна при нажатии на кнопку в menu bar?
спасибо.
Отредактировано portotiv (31.08.2012 19:27:04)
Dim About.s(3) ; - массив описаний пунктов меню
For i=0 To 3
About(i)="Кнопка "+Str(i+1)
Next
Macro LoWord(Value)
LoValue=Value & $FFFF
EndMacro
Macro HIWORD(Value)
HiValue=(Value >> 16) & $FFFF
EndMacro
Procedure WindowCallback(hWnd, Msg, wParam, lParam)
Shared About()
Select Msg
Case #WM_MENUSELECT
LoWord(wParam)
StatusBarText(0, 0, About(LoValue))
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0, 284, 110, 246, 174, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_TitleBar )
If CreateMenu(0, WindowID(0))
MenuTitle("Menu1")
MenuItem(0, "Button1")
MenuItem(1, "Button2")
OpenSubMenu("SubMenu1")
MenuItem(2, "Button3")
MenuItem(3, "Button4")
CloseSubMenu()
EndIf
If CreateStatusBar(0, WindowID(0))
AddStatusBarField(200)
EndIf
SetWindowCallback(@WindowCallback())
EndIf
Repeat
Event=WindowEvent()
Until Event=#PB_Event_CloseWindowВ примере я использовал API-функции. Здесь описание события WM_MENUSELECT.
И статья по теме, но для VB. В ней также есть Win API.
Отредактировано Тигрёнок (01.09.2012 00:08:25)
немного не то что мне нужно, но спасибо, буду разбираться, попробую в эту сторону рыть.
нет, все же данный вариант мне вовсе не подходит, к каждой кнопке меню/субменю должна быть отдельная собственная подсказка
Отредактировано portotiv (01.09.2012 11:31:07)
к каждой кнопке меню/субменю должна быть отдельная собственная подсказка
Подсказки хранятся в массиве About.
Какие вы их туда запишите, такими они и будут.
Подсказки хранятся в массиве About.
Какие вы их туда запишите, такими они и будут.
Спасибо
Можно другой вариант:
Case #WM_MENUSELECT
LoWord(wParam)
Select LoValue
Case 0
About.s=About(0)
Case 1
About.s=About(1)
Default
About.s=""
EndSelect
StatusBarText(0, 0, About)В этом случае описания можно "раздать" более детально. И не будет конфликтов с массивом About() если LoValue выйдет за его рамки.
Можно другой вариант
Возникает вопрос, "а зачем тогда нужен массив" (многоязычные проги в расчет не берем)?
а зачем тогда нужен массив
Да так. Оставил как рудимент. Не проблема ведь)
Можно заменить текстовой строкой.
Отредактировано Тигрёнок (01.09.2012 20:34:16)
Вы здесь » PureBasic - форум » Вопросы по PureBasic » вывод комментария