Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как на Вынь Апи реализовать Align С++Builder 
:(
    Опции темы
HappyLife
Дата 17.9.2007, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: нет
Всего: 8



Каким образом реализовать свойство Align в C++Builder средствами ВЫНЬАПИ?
PM MAIL   Вверх
EnergoHokum
Дата 17.9.2007, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 600
Регистрация: 10.11.2006
Где: Россия, Ставропол ь

Репутация: 3
Всего: 6



А подробнее можно? Align чего? Текста, картинки...
PM MAIL ICQ   Вверх
HappyLife
Дата 17.9.2007, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: нет
Всего: 8



EnergoHokum, Окна. 
Чтобы оно занимало, например, всю область родительского окна.
И еще! Каким образом убрать отображение бордера и заголовка?

Идея такая.

Я хватаю главное окно чужой открытой программы, и хочу поместить его в свое окно, использовав SetParent. Далее мне нужно чтобы чужое окно заняло всю область моего окна и не показывало свой заголовок.

Это сообщение отредактировал(а) HappyLife - 17.9.2007, 14:43
PM MAIL   Вверх
Mihhail
Дата 17.9.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 13.9.2007

Репутация: 5
Всего: 9



LONG lPar = GetWindowLong( hwnd, GWL_STYLE );            //Получаем параметры окна
SetWindowLong( hwnd, GWL_STYLE, lPar | WS_CAPTION );     //Изменяем бит заголовка

Будет ли работать в таком виде или нет не знаю, но функции те что надо.
Посмотри ещё описание функции CreateWindow, там все стили окна прописаны.

Для перемещения и изменения размеров:
MoveWindow( hwnd, x, y, W, H, TRUE );

Цитата(HappyLife @  17.9.2007,  18:40 Найти цитируемый пост)
Я хватаю главное окно чужой открытой программы, и хочу поместить его в свое окно, использовав SetParent.

Вопрос: И такое получается? И окно на родительском с заголовком так и выводится? Или ещё не пробовал делать?
PM MAIL WWW   Вверх
HappyLife
Дата 17.9.2007, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: нет
Всего: 8



Цитата(Mihhail @  17.9.2007,  15:12 Найти цитируемый пост)
Вопрос: И такое получается? И окно на родительском с заголовком так и выводится? Или ещё не пробовал делать?

Да. Такое работает.  А насчет изменения размеров окна функции я знаю и MSDN пользоваться умею. Но вот я думал что быть может это можно делать автоматом как в Бильдере.  И как бы я не эксперементировал, заголовок не пропадает. То есть форма свободно перемещается в пределах моей формы но с заголовком:(( P.S WS_CAPTION не помог.

Это сообщение отредактировал(а) HappyLife - 17.9.2007, 15:28
PM MAIL   Вверх
Mihhail
Дата 17.9.2007, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 13.9.2007

Репутация: 5
Всего: 9



Цитата(HappyLife @  17.9.2007,  19:28 Найти цитируемый пост)
 Но вот я думал что быть может это можно делать автоматом как в Бильдере.

Чё т я туплю, это про что - применительно к описанной тобой программе.
PM MAIL WWW   Вверх
HappyLife
Дата 17.9.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: нет
Всего: 8



Ура. С заголовком я все таки сделал.
Методом экспериментов.
С резайзингом тоже думаю сейчас придумаю реализацию.
Код
        HWND hWnd = FindWindow(0,"2003");
        if (hWnd)
        {
                ::SetParent(hWnd,Handle);
                SetWindowLong(hWnd,GWL_STYLE,WS_CHILD);
                MoveWindow(hWnd,0,0,Width,Height,true);
                ShowWindow(hWnd,SW_SHOW);
        }


PM MAIL   Вверх
Mihhail
Дата 17.9.2007, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 13.9.2007

Репутация: 5
Всего: 9



Пздравляю!  smile
Код в заметки - ещё где ни-будь пригодится!
PM MAIL WWW   Вверх
Earnest
Дата 17.9.2007, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 33
Всего: 183



Вместо ненужных MoveWindow\ShowWindow можно после SetWindowLong вызвать SetWindowPos (hWnd, 0,0,0,0,0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|SWP_FRAMECHANGED) - таким образом ты сообщаешь окну, что нужно пересчитать неклиентскую область.


--------------------
...
PM   Вверх
Alca
Дата 1.10.2008, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 5
Всего: 50



свойство Align:
Код

RECT rect;        memset(&rect, 0, sizeof(rect));
GetClientRect(m_hMainDlg, &rect);
MoveWindow(hListBox, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, FALSE);



--------------------
PM WWW ICQ Skype Jabber   Вверх
Dem_max
Дата 1.10.2008, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 16
Всего: 39



Цитата

Но вот я думал что быть может это можно делать автоматом как в Бильдере. 

WinAPI не билдеровский VCL, все нужно делать ручками.


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0534 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.