powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Toolbar Control
12 сообщений из 12, страница 1 из 1
Toolbar Control
    #32295602
umalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кто знает, подскажите, пожалуйста, как создать Toolbar у окна (не MDI).
Заранее благодарен, Алексей.
...
Рейтинг: 0 / 0
Toolbar Control
    #32295898
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть разные пути:
1) Самый простой - использовать окно типа MDI (и даже с MicroHelp), просто не пользоваться Sheet Windows. Если быть очень анальным, то можно в нём уничтожить MDIClient, например так:
В пайнтере делаешь его невидимым.
Объявляешь
Код: plaintext
1.
function ulong GetWindow ( ulong handle, uint uCmd ) library  "USER32.DLL" 
FUNCTION int GetClassName(ulong hwnd, ref string  lpClassName, int length)  Library  "user32.dll"  alias for GetClassNameA

В Open eventе пишешь:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
ulong		lul_hndl, lul_mdichandle
string	ls_class
integer	li_classlen =  40 , li_rc

// Get a handle to the first child
lul_hndl = GetWindow ( Handle (this), 5  ) // 5 = Child windows
ls_class = Space ( li_classlen )
                     
DO WHILE lul_hndl <>  0 
	li_rc = GetClassName ( lul_hndl, ls_class, li_classlen )
	IF ls_class =  "MDIClient"  THEN 
		lul_mdichandle  = lul_hndl
		EXIT
	END IF
   lul_hndl = GetWindow (lul_hndl,  2  )
LOOP

IF lul_mdichandle >  0  THEN	
	Send(lul_mdichandle,  16 ,  0 , 0 ) // 16  = WM_DESTROY
END IF
Show()


2) Можно так - http://www.softtreetech.com/hightech/toolbar.pbl
...
Рейтинг: 0 / 0
Toolbar Control
    #32296082
umalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо!
...
Рейтинг: 0 / 0
Toolbar Control
    #32296166
umalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Существует ли возможность создать ToolBar у Response Window?
...
Рейтинг: 0 / 0
Toolbar Control
    #32297137
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так как в варианте 2) можно и для Response Window.
При желании можно и менюшку на нём иметь, с помощью ChangeMenu...
...
Рейтинг: 0 / 0
Toolbar Control
    #32299938
MikeV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Филипп
Попробовал вариант 2: http://www.softtreetech.com/hightech/toolbar.pbl
с Response Window. Увы, Response Window открыто как модальное окно и не дает кликать по иконкам w_toolbar. Как же быть? :(((
...
Рейтинг: 0 / 0
Toolbar Control
    #32300402
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда надо или использовать какие нибудь ActiveX контролы, которые дают toolbar, или строить самому userobject который ведёт себя как toolbar и пихать его в Response Window.
Но позволю себе спросить - зачем тебе это надо?
...
Рейтинг: 0 / 0
Toolbar Control
    #32301534
MikeV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Филипп
Мне это совсем не надо, а вот начальству очччень хотца.
Постараюсь его успокоить.
Спасибо, вопрос закрыт.
...
Рейтинг: 0 / 0
Toolbar Control
    #32302243
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ещё вот такой (довольно элегантный) вариант:
http://www.pbdr.com/software/comp/toolbar.zip
...
Рейтинг: 0 / 0
Toolbar Control
    #32302416
umalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скачал пример http://]http://www.softtreetech.com/hightech/toolbar.pbl
Но для Response окна он не работал.
Но если создать пользовательское событие для w_toollbar от ( pbm_cancelmode) и внём прописать
Post EnableWindow(Handle(This), True), то тогда работает.

Function Uint EnableWindow(Uint hWnd, Boolean bEnable) Library "user32.dll"
...
Рейтинг: 0 / 0
Toolbar Control
    #32303647
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umalov , никаких API не нужно.
Делаешь userevent, в нём пишешь
Код: plaintext
this.enabled = TRUE
, а этот userevent постаешь из того, который мапнут к pbm_cancelmode...
...
Рейтинг: 0 / 0
Toolbar Control
    #32303861
umalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, действительно!
Спасибо большое!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Toolbar Control
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]