Уважаемые коллеги!
Есть маленькая проблема: нужно сымитировать наличие Browse control внутри фрейма. Расширение размеров тулбара не подходит, т.к. во фрейме есть рисунок.
Делаю: создаю процедуру Browse с максимизированным окошком, кидаю в нее фоновый рисунок и открываю в самом начале. В результате получается BrowseBox, расположенный в нерабочей области фрейма. Использую SetWindowPos, чтобы окошко было последним в Z-порядке. Работает.
Проблема: при открытии других MDI-окон, они открываются максимизированными и возвращаться обратно не хотят.
Как лечить?
С5 АВС
С уважением,
К.Р.
Написал: ClaList(2)
Имитация
Clarion, Clarion 7
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Гость
Сообщение Гость »
Максимизировать, запомнить размеры окна и контролов, вернуть в исходное состояние, потом размеры окна и контролов сделать такими же, как при максимизации...
---------------------------------------
C уважением,
Юрий Философов,
Главный программист
Корпорация "Диполь", Саратов
E-mail yufil@tacis-dipol.ru (служ)
yufil@mail.ru (дом)
ICQ#75924439
(Добавление)
Юра, большое спасибо, помогло в комбинации с PROP:CENTER
К.Р.
Написал: ClaList(2)
---------------------------------------
C уважением,
Юрий Философов,
Главный программист
Корпорация "Диполь", Саратов
E-mail yufil@tacis-dipol.ru (служ)
yufil@mail.ru (дом)
ICQ#75924439
(Добавление)
Юра, большое спасибо, помогло в комбинации с PROP:CENTER
К.Р.
Написал: ClaList(2)
Гость
Сообщение Гость »
Это "фича" такая. Честно говоря, трудно понять кто именно виноват - оконная подсистема самой Винды или Clarion-RTL.
Выход - делать первое окно без MAX.
Как?
1. Если бровз не обязательно должен закрывать всю клиентскую область фрейма, то нарисовать окошко бровза нужного фиксированного размера без заголовка, а сам List-контрол - на все окно.
2. Если надо закрыть всю клиентскую область фрейма, то, опять-же, рисуем окно бровза без заголовка и без аттрибута MAX, заполняем List-контролом все окно бровза, и после его открытия изменяем размеры окна так, что-бы заполнить всю клиентскую область фрейма.
Для определения реальных размеров этой клиентской области используй WinAPI-функции.
Только не забудь перед изменением размеров окна бровза по этим WinAPI-размерам устанвить для окна PROP:Points = True.
=============================
С уважением, Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com
Библиотека DynaLib
http://dynalib.narod.ru
Написал: ClaList(2)
Выход - делать первое окно без MAX.
Как?
1. Если бровз не обязательно должен закрывать всю клиентскую область фрейма, то нарисовать окошко бровза нужного фиксированного размера без заголовка, а сам List-контрол - на все окно.
2. Если надо закрыть всю клиентскую область фрейма, то, опять-же, рисуем окно бровза без заголовка и без аттрибута MAX, заполняем List-контролом все окно бровза, и после его открытия изменяем размеры окна так, что-бы заполнить всю клиентскую область фрейма.
Для определения реальных размеров этой клиентской области используй WinAPI-функции.
Только не забудь перед изменением размеров окна бровза по этим WinAPI-размерам устанвить для окна PROP:Points = True.
=============================
С уважением, Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com
Библиотека DynaLib
http://dynalib.narod.ru
Написал: ClaList(2)
Гость
Сообщение Гость »
Вместо максимизации попробовать использовать динамическое (просто по таймеру или по Event:Sized MDI Parent`а) изменение размеров этого окошка под размеры MDI Parent`а за вычетом размера тулбара и "еще чуть-чуть" (на бордеры). Если подходить совсем серьезно, то все размеры надо делать в пикселях - тогда можно будет точно учесть текущую ширину бордеров (хранится где-то в реестре)
...
Но будет побочный эффект - "моргание" при изменении размеров MDI Parent`а.
И как его лечить - не знаю.
--
Best regards, PigKiller
Не в реестре. Их возращает функция GetSystemMetrics
Open(Window)
0{Prop:Hide}=True
...
0{Prop:Hide}=False
Display()
---------------------------------------
C уважением,
Юрий Философов
Написал: ClaList(2)
...
Но будет побочный эффект - "моргание" при изменении размеров MDI Parent`а.
И как его лечить - не знаю.
--
Best regards, PigKiller
Не в реестре. Их возращает функция GetSystemMetrics
Можно скрыть всё окно.Но будет побочный эффект - "моргание" при изменении размеров MDI Parent`а.
И как его лечить - не знаю.
Open(Window)
0{Prop:Hide}=True
...
0{Prop:Hide}=False
Display()
---------------------------------------
C уважением,
Юрий Философов
Написал: ClaList(2)
Гость
Вернуться в «CLARION for Windows»
Перейти
- CW
- ↳ CLARION for Windows
- ↳ CLARION for Internet
- ↳ Clarion.NET
- Эксклюзив
- ↳ Приват
- CLARION и...
- ↳ Reports
- ↳ Железо
- ↳ Готовые программы, шаблоны, библиотеки...
- ↳ cJSON
- ↳ LibCurl
- ↳ MAV
- ↳ SQL, Oracle, ...
- ↳ Multi-программирование(Pascal/Delphi, и т.д.)
- ↳ WinDev
- DOS
- ↳ CLARION for DOS
- Разное
- ↳ Новости
- ↳ English
- ↳ Ресурсы
- ↳ Работа
- ↳ Обо всем ...
- ↳ Обсуждение этого Форума (типа, Гостевая книга)