Форум: "Прочее";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];
ВнизШирина IPicture в пикселях Найти похожие ветки
← →
Dmitry S © (2008-05-27 12:58) [0]Как преобразовать IPicture::get_Width в пиксели?
← →
wicked © (2008-05-27 13:09) [1]а в чем дает ширизну IPicture::get_Width?
← →
Dmitry S © (2008-05-27 13:10) [2]В каких-то OLE_XSIZE_HIMETRIC
← →
guav © (2008-05-27 13:21) [3]HIMETRIC это 0.01 мм, перевод, если не ошибаюсь будет так:
W := oleW * GetDeviceCaps(hDCScreen, LOGPIXELSX) / 2540;
← →
wicked © (2008-05-27 13:23) [4]
> В каких-то OLE_XSIZE_HIMETRIC
1 - найти, есть ли готовый метод для преобразования из одних единиц в другие - himetric - это по 0.01 мм точка
если нету, то
1 - почитать про SetMapMode
2 - выяснить, есть ли у IPicture какие либо DPI или что то похожее
3 - переводить ручками
← →
Dmitry S © (2008-05-27 14:17) [5]
> HIMETRIC это 0.01 мм
Спасибо!
Кстати в хелпе нашел:
STDAPI_(int) XformWidthInHimetricToPixels(HDC hDC, int iWidthInHiMetric)
{
int iXppli; //Pixels per logical inch along width
int iWidthInPix;
BOOL fSystemDC=FALSE;
if (NULL==hDC || GetDeviceCaps(hDC, TECHNOLOGY) == DT_METAFILE
|| GetDeviceCaps(hDC, LOGPIXELSX) == 0)
{
hDC=GetDC(NULL);
fSystemDC=TRUE;
}
iXppli = GetDeviceCaps (hDC, LOGPIXELSX);
//We got logical HIMETRIC along the display, convert them to pixel units
iWidthInPix = (int)MAP_LOGHIM_TO_PIX(iWidthInHiMetric, iXppli);
if (fSystemDC)
ReleaseDC(NULL, hDC);
return iWidthInPix;
}
#define HIMETRIC_PER_INCH 2540 // number HIMETRIC units per inch
#define MAP_LOGHIM_TO_PIX(x,ppli) MulDiv((ppli), (x), HIMETRIC_PER_INCH)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c