Доброго времени суток, коллеги!
inline void SCALERECT(RECT rc)
{
#ifndef _DRA_ADJUSTABLE_RESOLUTION
rc.left = SCALEX(rc.left);
rc.right = SCALEX(rc.right);
rc.top = SCALEY(rc.top);
rc.bottom = SCALEY(rc.bottom);
#else // _DRA_ADJUSTABLE_RESOLUTION
int nLogPixelsX = LogPixelsX();
int nLogPixelsY = LogPixelsY();
rc.left = SCALEX(rc.left, nLogPixelsX);
rc.right = SCALEX(rc.right, nLogPixelsX);
rc.top = SCALEY(rc.top, nLogPixelsY);
rc.bottom = SCALEY(rc.bottom, nLogPixelsY);
#endif // _DRA_ADJUSTABLE_RESOLUTION
}
Обратите внимание, что подлежащий масштабированию прямоугольник передается в функцию
по значению, поэтому эффект от ее вызова будет нулевым. Необходимое исправление очевидно:
inline void SCALERECT(RECT& rc)
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
Здравствуйте, SchweinDeBurg, Вы писали:
SDB>Доброго времени суток, коллег
SDB>SDB>inline void SCALERECT(RECT rc)
SDB>{
SDB>#ifndef _DRA_ADJUSTABLE_RESOLUTION
SDB> rc.left = SCALEX(rc.left);
SDB> rc.right = SCALEX(rc.right);
SDB> rc.top = SCALEY(rc.top);
SDB> rc.bottom = SCALEY(rc.bottom);
SDB>#else // _DRA_ADJUSTABLE_RESOLUTION
SDB> int nLogPixelsX = LogPixelsX();
SDB> int nLogPixelsY = LogPixelsY();
SDB> rc.left = SCALEX(rc.left, nLogPixelsX);
SDB> rc.right = SCALEX(rc.right, nLogPixelsX);
SDB> rc.top = SCALEY(rc.top, nLogPixelsY);
SDB> rc.bottom = SCALEY(rc.bottom, nLogPixelsY);
SDB>#endif // _DRA_ADJUSTABLE_RESOLUTION
SDB>}
SDB>
SDB>Обратите внимание, что подлежащий масштабированию прямоугольник передается в функцию по значению, поэтому эффект от ее вызова будет нулевым. Необходимое исправление очевидно:
SDB>SDB>inline void SCALERECT(RECT& rc)
SDB>