![]() |
|
|
![]()
|
|
| NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 2 Всего: 23 |
Перенести, например, Edit в новое место на форме.
Вот код:
Edit перекидывается чёрти куда. Хотя должен оставаться на месте. В чём тут дело? Добавлено @ 16:04 Хотя вот сейчас возникло подозрение, что функция GetWindowRect возвращает координаты относительно всего экрана. Значит, чтобы передвинуть Edit, нужно посчитать координаты формы. |
|||
|
||||
| srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 5 Всего: 49 |
Функция GetWindowRect возвращает позицию и размеры окна в экранных координатах, учитывая заголовок и границы окна. Посколько тебе требуется перемещать контрол внути окна, воспользуйся функцией GetClientRect, которая возвращает размеры окна в "клиентских" координатах.
-------------------- Не смей читать мою подпись!!! |
|||
|
||||
| NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 2 Всего: 23 |
srd
Такое тоже не работает. Добавлено @ 16:57 Он один только раз перемещает Edit вниз и почему-то налево (!!!) настолько же. А потом уже стоит на месте, сколько кнопку ни нажимай. |
|||
|
||||
| srd |
|
||||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 5 Всего: 49 |
Вот пример: edit каждые пол-секунды перескакивает на новое место внутри диалога.
Добавлено @ 17:12 А не работает перемещение edit потому, что GetWindowRect возвращает позицию контрола в экранных координатах, а SetWindowsPos передаваемые ей координаты считает относительно родителя контрола (т.е. самой формы). Добавлено @ 17:16 Забыл, ресурс диалога такой:
Надеюсь, поможет. -------------------- Не смей читать мою подпись!!! |
||||
|
|||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Можно и по другому.Получи координаты ed->GetWindowRect(rect);Переведи в координаты окна ScreenToClient(rect); и ed->MoveWindow(.......
-------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 2 Всего: 23 |
Coocky
ScreenToClient(rect); - вот это и надо было! Попробую. |
|||
|
||||
| NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 2 Всего: 23 |
Не работает. ScreenToClient приводит к тому же результату, что и GetClientRect.
|
|||
|
||||
| srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 5 Всего: 49 |
Можешь показать код?
-------------------- Не смей читать мою подпись!!! |
|||
|
||||
| NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 2 Всего: 23 |
См. описание в MSDN. Проще сразу делать GetClientRect |
|||
|
||||
| srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 5 Всего: 49 |
Собственно это и делалось в моём примере. Просто я не понял, что именно надо получить в результате...
-------------------- Не смей читать мою подпись!!! |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |