Скептическое поведение функции MoveWindow - PullRequest
0 голосов
/ 30 сентября 2011

MoveWindow (int x, int y, int nWidth, int nHeight, false) даже использовал SetWindowPos (& wndTopMost, m_iLeft, m_iTop, m_iWidth, m_iHeight, false);

, поскольку я не хочу перекрашивать моиокно, я передаю параметр перерисовки MoveWindow с ложным.но это перекрашивает окно.Это поведение работает хорошо, если я использую LeadTool v 16, но в v16.5 функция MoveWindow теряет свою функциональность.не знаю, как это относится к LeadTool.

С нетерпением ждем любой помощи по этому вопросу

Ответы [ 2 ]

1 голос
/ 30 сентября 2011

Это не (только) ваш вызов, когда окно должно быть перекрашено. Когда вы получаете WM_PAINT, окна сообщают вам, что окно должно быть нарисовано. «Я не хочу» не достаточно причины.

0 голосов
/ 01 октября 2011

Вы меняете ширину или высоту окна?Если это так, и если в целевом окне установлены биты стиля класса CS_HREDRAW или CS_VREDRAW, то изменение размера приведет к полной перерисовке.(Скорее всего, простое перемещение не вызовет перерисовку, если только его перемещение не откроет часть окна, которое ранее было скрыто другим окном.)

Кстати, последний параметр SetWindowPos - это набор битов, а не истина/ false, и первый параметр выглядит странно, это должен быть обычный HWND, а не адрес переменной.Подробнее см. MSDN в SetWindowPos .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...