Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сообщения Windows, Как обмануть программу 
:(
    Опции темы
Gorbatovsky
Дата 1.6.2004, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата
а не может быть варианта, что WM_PAINT не обрабатывается вовсе


Приложение корректно ведет себя с другими программами, если чужое окно двигается сверху, то моя программа себя перерисовывает.
PM MAIL ICQ   Вверх
mr.DUDA
Дата 1.6.2004, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

Репутация: 25
Всего: 232



гипотеза номер 2:

Может ли быть такое, что при выполнении модального диалог бокса (как CFileDialog) поток сообщений основного окна "замораживается" ?... тогда, естественно, никакие мессаги типа WM_PAINT или WM_MOUSEMOVE, которые идут через очередь сообщений, до главного окна не доходят.


--------------------
user posted image
PM MAIL WWW   Вверх
Gorbatovsky
Дата 1.6.2004, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



mr.DUDA, Вы несомненно правы.
В правильном приложении, когда висит модальный диалог этого (замораживания) не происходит.
Но я хочу заставить главное окно перерисовать себя после закрытия диалога.
Еще одно уточнение. Диалог я создаю в dll
PM MAIL ICQ   Вверх
AndyY
Дата 1.6.2004, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 2
Всего: 4



dll роли не играет. а диалог в основном потоке создается?
может, проблема с синхронизацией?

предлагаю натравить шпиона (spy++) на основное окно и посмотреть какие сообщения ходят во время открытого диалога.

кстати, какая OS? вроде XP как-то сохраняет картинку на окне даже подвисшей задачи, поэтому при движении чужого окна ничего не апдейтится.


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


Шустрый
*


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

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



Диалог в основном потоке создается.
OC-XP.
При движении чужого окна картинка восстанавливается.
AndyY, Вы полагаете, что это делает (картинку восстанавливает) OC?
PM MAIL ICQ   Вверх
AndyY
Дата 1.6.2004, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 2
Всего: 4



да, я с таким встречался. у подвисшего окна не перерисовывается только меню (белая полоса) но у вас меню нет...

так что с потоками и сообщениями?


--------------------
PM MAIL WWW   Вверх
Gorbatovsky
Дата 1.6.2004, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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);
Вопрос закрыт
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

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


 




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


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

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