Здравствуйте, DenisF, Вы писали:
DF>Как программно поменять кол-во точек на дюйм у монитора?
Например так.
// получить разрешение экрана (если нужно)
HDC hdc =::GetDC(GetDesktopWindow());
int x =::GetDeviceCaps(hdc, HORZRES);
int y =::GetDeviceCaps(hdc, VERTRES);
// поменять разрешение на 1024*768 16 битный цвет
DEVMODE DevMode;
DevMode.dmSize=sizeof(DevMode);
DevMode.dmBitsPerPel=16;
DevMode.dmPelsWidth=1024;
DevMode.dmPelsHeight=768;
DevMode.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;
::ChangeDisplaySettings(&DevMode, CDS_UPDATEREGISTRY);
Почему добро всегда побеждает зло? Потому что историю пишут победители.
Здравствуйте, Amethyst, Вы писали:
A>Например так. A>
A>// получить разрешение экрана (если нужно)
A>HDC hdc =::GetDC(GetDesktopWindow());
A>int x =::GetDeviceCaps(hdc, HORZRES);
A>int y =::GetDeviceCaps(hdc, VERTRES);
A>// поменять разрешение на 1024*768 16 битный цвет
A>DEVMODE DevMode;
A>DevMode.dmSize=sizeof(DevMode);
A>DevMode.dmBitsPerPel=16;
A>DevMode.dmPelsWidth=1024;
A>DevMode.dmPelsHeight=768;
A>DevMode.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;
A>::ChangeDisplaySettings(&DevMode, CDS_UPDATEREGISTRY);
A>
Это конечно все правильно, но приведенный код меняет разрешение экрана. А мне нужно поменять Масштба(кол-во точек на дюйм). В WinXp это можно поменять тут : Свойства Экрана -> Параметры -> Дополнительно -> Общие -> Масштаб(кол-во точек на дюйм).
Я использую туже ф-цию, выставляю DevMode.dmLogPixels например в 120 и устанавливаю DevMode.dmFields = DM_LOGPIXELS. Вызываю ф-цию, но никакого эффекта... В чем дело?
Здравствуйте, Кодёнок, Вы писали:
Кё>Здравствуйте, DenisF, Вы писали:
DF>>Как программно поменять кол-во точек на дюйм у монитора? DF>>Зарание спасибо!
Кё>Количество точек на дюйм — физическая характеристика монитора. Для современных LCD это 96 dpi.
Кё>Ты можешь: Кё>1. Сменить размер шрифтов Кё>2. Сменить разрешение (т.е число пикселов на дюйм).
Короче, мне нужно, чтобы моя прога умела делать так-же, как и винда, которая меняет разрешение здесь: Свойства Экрана -> Параметры -> Разрешение экрана, а то, что мне нужно здесь: Свойства Экрана -> Параметры -> Дополнительно -> Общие -> Масштаб(кол-во точек на дюйм), как я уже и говорил.
Здравствуйте, Кодёнок, Вы писали:
Кё>Количество точек на дюйм — физическая характеристика монитора. Для современных LCD это 96 dpi.
Если это так, то почему тогда и у 17-дюймовых, и у 19-дюймовых мониторов "родное" разрешение одно и то же (1280x1024), соответственно, pixel pitch 0.264mm и 0.294mm?
Здравствуйте, Vadim B, Вы писали:
Кё>>Количество точек на дюйм — физическая характеристика монитора. Для современных LCD это 96 dpi.
VB>Если это так, то почему тогда и у 17-дюймовых, и у 19-дюймовых мониторов "родное" разрешение одно и то же (1280x1024), соответственно, pixel pitch 0.264mm и 0.294mm?