![]() |
|
|
![]()
|
|
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
У меня на форме должен быть диалог, прикрепленный в правом углу формы.
Это будет диалог со свойствами. Если диалог в форме - как его выводить всегда на одно место. Если есть похожий контрол, то какой? -------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Да просто создай диалоговый ресурс с типом WS_CHILD, создавай его с помощью Create, а чтобы при резайзе формы он оставался на мести (в правом углу) - обрабатывай OnSize формы и перемещай ручками в нужное место.
-------------------- ... |
|||
|
||||
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
мне надо чтоб он немодальный получался....
такая проблема - как получить размеры клинтской области главного окна.... гетклиентрект возвращает совсем не то.... GetWindowRect тоже не то, тк захватывает рамку... -------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Create именно немодальный и создает
Это у тебя жар... GetClientRect возвращает как раз клиентскую область того окна, у которого спрашивают -------------------- ... |
|||
|
||||
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
ну а почему тогда когда я запрашиваю клиент рект и вывожу диалог с этими координатами, то мне выводится диалог с верными рамерами, но неверным местоположением (в левом верхнем углу экрана...)
-------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
GetClientRect - размеры окна , а не координаты.
-------------------- ????? ??, ??????? ?????. |
|||
|
||||
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
может потому что AfxGetMainWnd()->GetWindowRect(lpRect) выводит координаты отсчитывая координаты от верхней левой точки экрана, а клиент от родительского окна?
в процессе отладки посмотрела, к примеру: это AfxGetMainWnd()->GetWindowRect(lpRect) lpRect {top=175 bottom=890 left=135 right=1095} CRect а вот клиент рект lpRect2 {top=0 bottom=650 left=0 right=952} CRect Добавлено через 8 минут и 41 секунду размеры те да не очень...захватывает внизу строку состояния... и наверху тулбар тоже я так понимаю считается частью клиентской области... как мне получить темную область, в которою выводятся все документы. -------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 6 Всего: 8 |
Юзай ClientToScreen.
-------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
этим получать клиетское окно? чего-то вообще ничего не получает этв ф-ия, абракадабру... Добавлено через 4 минуты и 59 секунд может есть контрол какой типа просто панели, чтоб его налепить... прям на форму Добавлено через 10 минут и 22 секунды блин, я глупочка, на форму это в документе ж будет -------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
мне нужны координаты рабочей области без тулбара и строки состояния, ведь документы ж ее получают...
-------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
Ну отнимай высоту тулбара и строки состояния
-------------------- ????? ??, ??????? ?????. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Патаму что у тебя диалог не дочерний, а должен быть таковым, судя по предыдущим постам. Дочерние окна при создании и перемещении воспринимают координаты относительно клиентской области родительского окна, а попапы - относительно экрана. Используй флаг WS_CHILD при создании. Добавлено через 1 минуту и 46 секунд Спрашивай не у фрейма, а у вью. -------------------- ... |
|||
|
||||
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
Earnest, спасибо большое...
можете ответить на пару дурацких вопросов?: спрашивать у вью: я в ф-ии вида
вызываю GetClientRect(lpRect); он мне возвращает клиентскую область документа, а не фрейма... как быть? и совсем глупый вопрос...но чего-то не найду, простите... какой ф-ией мне установить свойство WS_CHILD? -------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
Можно через
virtual BOOL ModifyStyle( DWORD dwRemove, DWORD dwAdd, UINT nFlags ); -------------------- ????? ??, ??????? ?????. |
|||
|
||||
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
в общем я установила модифайлстайлом - реакции никакой.... Добавлено через 5 минут и 6 секунд что не так? вообще идея вычитать строку состояния и тулюар мне не нравится ибо некрасиво это как то -------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
Что-то типа этого Это сообщение отредактировал(а) Andrey44 - 9.4.2008, 15:44 -------------------- ????? ??, ??????? ?????. |
|||
|
||||
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
да нет...AfxGetMainWnd()->ClientToScreen(&lpRect); белиберду возвращает
Добавлено через 13 минут и 40 секунд модифай стайл по моему вообще игнорирует.... зато в настройках диалога поменяла стиль на чайлд...так он вообще теперь не показывается...как быть людииии... -------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
нне, модифайл стайл все таки работает, но странно как то...хм....
Добавлено через 6 минут и 58 секунд людииииииииииииииии -------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Да нет у документа никакой клиентской области - она может быть только у окна ну зачем у главного окна-то спрашивать. Оно большое... Никак нельзя установить WS_CHILD - с ним надо создавать! Т.е. передать в Create (или установить у ресурса IDD_PROPERTIES) -------------------- ... |
|||
|
||||
| dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
Можно попробовать убрать полосу заголовка окна. Это стиль WS_CAPTION.
|
|||
|
||||
| Dreamer_0x01 |
|
||||||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
Не нужно.
Тоже не нужно ;)
Если рисуем в представлении, это тоже не нужно - GetClientRect() все это учитывает. Если рисуем на мейнфрейме, то тогда нужно ;) Весь вопрос в том, в каком месте GetClientRect() вызвать. Прикладываю тестовый проектик, в нем два диалога налеплены на форму в 20 пикселах от края формы. Можно потаскать границы окна - при ресайзе диалоги все равно встают на место, значит, GetClientRect() правильно вычисляет размеры клиентской области. Это сообщение отредактировал(а) Dreamer_0x01 - 10.4.2008, 10:42 Присоединённый файл ( Кол-во скачиваний: 2 )
ClientPanel.rar 203,38 Kb-------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
||||||
|
|||||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
tonchitos, вы бы хоть посмотрели пример, может, поможет?
-------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
спасибо
-------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |