![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Gorbatovsky |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 4.9.2003 Где: Киев Репутация: нет Всего: нет |
Приложение корректно ведет себя с другими программами, если чужое окно двигается сверху, то моя программа себя перерисовывает. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
гипотеза номер 2:
Может ли быть такое, что при выполнении модального диалог бокса (как CFileDialog) поток сообщений основного окна "замораживается" ?... тогда, естественно, никакие мессаги типа WM_PAINT или WM_MOUSEMOVE, которые идут через очередь сообщений, до главного окна не доходят. -------------------- ![]() |
|||
|
||||
| Gorbatovsky |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 4.9.2003 Где: Киев Репутация: нет Всего: нет |
mr.DUDA, Вы несомненно правы.
В правильном приложении, когда висит модальный диалог этого (замораживания) не происходит. Но я хочу заставить главное окно перерисовать себя после закрытия диалога. Еще одно уточнение. Диалог я создаю в dll |
|||
|
||||
| AndyY |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.5.2004 Где: СПб Репутация: 2 Всего: 4 |
dll роли не играет. а диалог в основном потоке создается?
может, проблема с синхронизацией? предлагаю натравить шпиона (spy++) на основное окно и посмотреть какие сообщения ходят во время открытого диалога. кстати, какая OS? вроде XP как-то сохраняет картинку на окне даже подвисшей задачи, поэтому при движении чужого окна ничего не апдейтится. |
|||
|
||||
| Gorbatovsky |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 4.9.2003 Где: Киев Репутация: нет Всего: нет |
Диалог в основном потоке создается.
OC-XP. При движении чужого окна картинка восстанавливается. AndyY, Вы полагаете, что это делает (картинку восстанавливает) OC? |
|||
|
||||
| AndyY |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 8.5.2004 Где: СПб Репутация: 2 Всего: 4 |
да, я с таким встречался. у подвисшего окна не перерисовывается только меню (белая полоса) но у вас меню нет...
так что с потоками и сообщениями? |
|||
|
||||
| Gorbatovsky |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 4.9.2003 Где: Киев Репутация: нет Всего: нет |
Привожу фрагмент сообщений полученных утилитой Spy
WM_MOUSEMOVE WM_NCHITTEST я отключил <00001> 001703DC S ..........................................................WM_WINDOWPOSCHANGING lpwp:0012FE7C <00002> 001703DC R ..........................................................WM_WINDOWPOSCHANGING <00003> 001703DC S ..........................................................WM_NCPAINT hrgn:00000001 <00004> 001703DC R ..........................................................WM_NCPAINT <00005> 001703DC S ..........................................................WM_ERASEBKGND hdc:6E010919 <00006> 001703DC R ..........................................................WM_ERASEBKGND fErased:False <00007> 001703DC S ..........................................................WM_WINDOWPOSCHANGED lpwp:0012FE7C <00008> 001703DC R ..........................................................WM_WINDOWPOSCHANGED <00009> 001703DC S ..........................................................WM_ACTIVATEAPP fActive:True dwThreadID:000009DC <00010> 001703DC R ..........................................................WM_ACTIVATEAPP <00011> 001703DC S ..........................................................WM_NCACTIVATE fActive:True <00012> 001703DC R ..........................................................WM_NCACTIVATE <00013> 001703DC S ..........................................................WM_ACTIVATE fActive:WA_ACTIVE fMinimized:False hwndPrevious:(null) <00014> 001703DC S ...........................................................WM_ACTIVATETOPLEVEL fActive:True dwThreadID:0012FC14 <00015> 001703DC R ...........................................................WM_ACTIVATETOPLEVEL <00016> 001703DC S ...........................................................WM_SETFOCUS hwndLoseFocus:(null) <00017> 001703DC R ...........................................................WM_SETFOCUS <00018> 001703DC R ..........................................................WM_ACTIVATE <00019> 001703DC S ..........................................................WM_SYNCPAINT <00020> 001703DC S ...........................................................WM_NCPAINT hrgn:59040997 <00021> 001703DC R ...........................................................WM_NCPAINT <00022> 001703DC S ...........................................................WM_ERASEBKGND hdc:BE010862 <00023> 001703DC R ...........................................................WM_ERASEBKGND fErased:False <00024> 001703DC R ..........................................................WM_SYNCPAINT <00025> 001703DC P WM_PAINT hdc:00000000 <00026> 001703DC P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:1117 yPos:194 <00027> 001703DC P WM_LBUTTONUP fwKeys:0000 xPos:1117 yPos:194 <00028> 001703DC P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:1117 yPos:194 <00029> 001703DC S ..........................................................WM_CANCELMODE <00030> 001703DC R ..........................................................WM_CANCELMODE <00031> 001703DC S ..........................................................WM_KILLFOCUS hwndGetFocus:(null) <00032> 001703DC R ..........................................................WM_KILLFOCUS <00033> 001703DC S ..........................................................WM_ENABLE fEnable:False <00034> 001703DC R ..........................................................WM_ENABLE <00035> 001703DC S ..........................................................WM_CANCELMODE <00036> 001703DC R ..........................................................WM_CANCELMODE <00037> 001703DC S ...........................................................WM_NCACTIVATE fActive:False <00038> 001703DC R ...........................................................WM_NCACTIVATE fDeactivateOK:True <00039> 001703DC S ...........................................................WM_ACTIVATE fActive:WA_INACTIVE fMinimized:False hwndPrevious:001B032E <00040> 001703DC R ...........................................................WM_ACTIVATE <00041> 001703DC S ...........................................................WM_WINDOWPOSCHANGING lpwp:0012D764 <00042> 001703DC R ...........................................................WM_WINDOWPOSCHANGING <00043> 001703DC S ...........................................................WM_WINDOWPOSCHANGED lpwp:0012D764 <00044> 001703DC R ...........................................................WM_WINDOWPOSCHANGED <00045> 001703DC S ......................................................................WM_QUERYCENTERWND hwndUseAsCenteringParent:(null) <00046> 001703DC R ......................................................................WM_QUERYCENTERWND <00047> 001703DC S .....................................................................WM_WINDOWPOSCHANGING lpwp:0012D760 <00048> 001703DC R .....................................................................WM_WINDOWPOSCHANGING <00049> 001703DC S .....................................................................WM_WINDOWPOSCHANGED lpwp:0012D760 <00050> 001703DC R .....................................................................WM_WINDOWPOSCHANGED <00051> 001703DC S ............................................................................WM_WINDOWPOSCHANGING lpwp:0012D804 <00052> 001703DC R ............................................................................WM_WINDOWPOSCHANGING <00053> 001703DC S ............................................................................WM_NCACTIVATE fActive:True <00054> 001703DC R ............................................................................WM_NCACTIVATE <00055> 001703DC S ............................................................................WM_ACTIVATE fActive:WA_ACTIVE fMinimized:False hwndPrevious:001B032E <00056> 001703DC R ............................................................................WM_ACTIVATE <00057> 001703DC S ............................................................................WM_SETFOCUS hwndLoseFocus:001B032E <00058> 001703DC R ............................................................................WM_SETFOCUS <00059> 001703DC S ..............................................................................WM_ENABLE fEnable:True <00060> 001703DC R ..............................................................................WM_ENABLE <00061> 001703DC S ..............................................................................WM_PAINT hdc:00000000 <00062> 001703DC R ..............................................................................WM_PAINT <00063> 001703DC P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:1272 yPos:1003 <00064> 001703DC P WM_LBUTTONUP fwKeys:0000 xPos:1272 yPos:1003 <00065> 001703DC P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:1266 yPos:1004 <00066> 001703DC P WM_LBUTTONUP fwKeys:0000 xPos:1266 yPos:1004 <00067> 001703DC P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:1107 yPos:85 Добавлено @ 16:08 Всем спасибо. Помогло просто ::InvalidateRect(hParent,NULL,FALSE); Вопрос закрыт |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |