|
|
|
MoveWindow
|
|||
|---|---|---|---|
|
#18+
Проблема заключается в следующем: имеется диалоговое окно, на нем разные контролы (в том числе ActiveX). Делаю Resizing контролов при изменении размеров окна. Все работало ОК. Но решил я избавиться от mfc-ового CWnd (использовал от него метод MoveWindow для изменения позиции и размера контрола). Решил пользоваться апишным MoveWindow. Опять все хорошо, только у ActiveX элемента одного есть Scroll Bar (сделан дочерним окном от основного окна контрола). Так вот основное окно данного ActiveX меняет размеры и положение, а эти скролл бары -нет (при пользовании CWnd - было все ОК). Вопрос: может кто знает в чем дело ? (может необходимо досылать доп. сообщения, которое не делает апишная MoveWindow, какие ?) Спасибо за внимание... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2004, 09:28 |
|
||
|
MoveWindow
|
|||
|---|---|---|---|
|
#18+
MFC Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2004, 12:36 |
|
||
|
MoveWindow
|
|||
|---|---|---|---|
|
#18+
А по хендлу контрола можно выяснить что это OLE -элемент? (если можно, то как?) Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2004, 13:47 |
|
||
|
MoveWindow
|
|||
|---|---|---|---|
|
#18+
Хмм.. первый способ приходящий в голову труден и долог. А попробуй сначала отослать ему WM_SIZE, с другой стороны, если у тебя контрол на форме, ты должен "знать" его хэндл, или указатель на сам объект, через который и можно получить доступ к методу MoveWindow cамого объекта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2004, 07:38 |
|
||
|
MoveWindow
|
|||
|---|---|---|---|
|
#18+
CEMbХмм.. первый способ приходящий в голову труден и долог. А попробуй сначала отослать ему WM_SIZE, с другой стороны, если у тебя контрол на форме, ты должен "знать" его хэндл, или указатель на сам объект, через который и можно получить доступ к методу MoveWindow cамого объекта WM_SIZE - не помогает, т.к. MoveWindow окромя данного сообщения посылает еще несколько сообщений (до WM_SIZE и после). Хендл контрола знаю (передаю его в объект класса производящего resizing). Пытаюсь выполнить ::MoveWindow(hWnd,...) (hWnd-хендл контрола): главное окно (рамка) контрола- масштабируется -внутренности нет. Как продемонстрировал Siebentearbeit MFC для OLE-контролов вызывает их собственный метод MoveWindow. Попробовать чтоль вместе с хендлом еще и ссылку на объект для данных контролов передавать ? Это будет не очень красиво или нормально? Или оставить MFC ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2004, 10:40 |
|
||
|
MoveWindow
|
|||
|---|---|---|---|
|
#18+
Siebentearbeit зря не скажет... :) в MFC-шной версии дёргается метод самого контрола, я надеялся, что WM_SIZE cпровоцирует вызов этого метода,.. ан нет... (кстати, интересно, чё будет, если контрол такой метод не поддерживает?...) авторПопробовать чтоль вместе с хендлом еще и ссылку на объект для данных контролов передавать ? Передавать куда? Тебе надо просто взять и вызвать pMyOLEObj->MoveWindow(...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2004, 11:20 |
|
||
|
MoveWindow
|
|||
|---|---|---|---|
|
#18+
CEMb Передавать куда? Тебе надо просто взять и вызвать pMyOLEObj->MoveWindow(...) Дык, я же говорю, что у меня есть класс, который всем этим безобразием (в смысле масштабирования) занимается и нужно какое-то однообразие в обработке масштабирования контролов: в класс передается хендл диалогового окна, устанавливаются параметры масштабирования и далее на OnSize(...) окна вызывается метод объекта масштабирования, который все контролы на диалоговом окне располагает в соответствии с заданными параметрами. А ежли для таких "особых" контролов отдельно pMyOLEObj->MoveWindow(...) делать: как-то неуклюже получается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2004, 13:23 |
|
||
|
MoveWindow
|
|||
|---|---|---|---|
|
#18+
Спасибо тебе, СЕМЬ, на добром слове :) Итак... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. где m_pObject - это LPOLEOBJECT, описаный в SDK в ole.h а вот как оно у этого объкта SetExtent зовёт... я уже не понял... ибо нету его там... Так что, имхо, лучше оставить MFC методы, если не критично... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2004, 17:15 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=424&tid=2034068]: |
0ms |
get settings: |
12ms |
get forum list: |
24ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 382ms |

| 0 / 0 |
