Вопрос № 28555: Здравствуйте ув. эксперты.
В функции(процедуре) окна можно объявить объект
PAINTSTRUCT ps; и сразу начинать рисование BeginPaint(hwnd, &ps);
Можно сделать даже так BeginPaint(hwnd, (LPPAINTSTRUCT)&ps);
Но почему нельзя сделать во...
Вопрос № 28.555
Здравствуйте ув. эксперты.
В функции(процедуре) окна можно объявить объект
PAINTSTRUCT ps; и сразу начинать рисование BeginPaint(hwnd, &ps);
Можно сделать даже так BeginPaint(hwnd, (LPPAINTSTRUCT)&ps);
Но почему нельзя сделать вот так:
PAINTSTRUCT ps;
LPPAINTSTRUCT lpps = &ps;
Данная идея родилась после изучения заголовочных файлов Windows API.
Конкретно winuser.h Практического воплощения пока нет, просто не понятно почему не срабатывает механизм определения типов.
Отвечает: Алексей Смуриков
Здравствуйте, Цепков Константин Владимирович!
Если тат то тогда только один совет:
Переходи на ассемблер там пофигу какой тип!!!
--------- Speccy Rulezz!!!
Ответ отправил: Алексей Смуриков (статус: Практикант)
Отправлен: 30.10.2005, 17:45
Отвечает: Bob Johnson
Здравствуйте, Цепков Константин Владимирович!
А кто тебе сказал, что так сделать нельзя? Так можно сделать как раз...
Приложение:
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 30.10.2005, 18:19
Отвечает: estiGi
Здравствуйте, Цепков Константин Владимирович!
А с чего ты взял, что нельзя? LPPAINTSTRUCT взялся от typedef на PAINTSTRUCT*, поэтому такой код:
PAINTSTRUCT ps;
LPPAINTSTRUCT lpps = &ps;
прекрасно компилируется и работает. Если у тебя нет - значит ты где то изменил тот самый winuser.h. Или я просто не понял, что именно ты имел в виду.
А вообще при рисовании посоветовал бы хорошо подумать, когда используешь BeginPaint/EndPaint - могут возникнуть непонятки и неожиданности :)
Если вдруг ты не понимаешь, почему нужный тебе фрагмент не перерисовывается, когда ты вроде все делаешь правильно, пользуй GetDC/ReleaseDC
Ответ отправил: estiGi (статус: 4-ый класс)
Отправлен: 30.10.2005, 19:04
Отвечает: VampSergey
Здравствуйте, Цепков Константин Владимирович!
так:
PAINTSTRUCT ps;
LPPAINTSTRUCT lpps = &ps;
делать можно(зачем-то...)!
Может не подключен "windows.h" или "winuser.h", но не могу представить как(без них) остальное-то работает :)
Ответ отправил: VampSergey (статус: 2-ой класс)
Отправлен: 01.11.2005, 00:16