Как сделать вывод комментария внизу окна при нажатии на кнопку в 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 » вывод комментария