Поменять кол-во точек на дюйм у монитора
От: DenisF Россия  
Дата: 24.08.05 06:37
Оценка: :)
Как программно поменять кол-во точек на дюйм у монитора?
Зарание спасибо!
Re: Поменять кол-во точек на дюйм у монитора
От: Amethyst  
Дата: 24.08.05 07:07
Оценка:
Здравствуйте, 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);
Почему добро всегда побеждает зло? Потому что историю пишут победители.
Re: Поменять кол-во точек на дюйм у монитора
От: Кодёнок  
Дата: 24.08.05 07:24
Оценка:
Здравствуйте, DenisF, Вы писали:

DF>Как программно поменять кол-во точек на дюйм у монитора?

DF>Зарание спасибо!

Количество точек на дюйм — физическая характеристика монитора. Для современных LCD это 96 dpi.

Ты можешь:
1. Сменить размер шрифтов
2. Сменить разрешение (т.е число пикселов на дюйм).
Re[2]: Поменять кол-во точек на дюйм у монитора
От: DenisF Россия  
Дата: 24.08.05 07:25
Оценка:
Здравствуйте, 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. Вызываю ф-цию, но никакого эффекта... В чем дело?
Re: Поменять кол-во точек на дюйм у монитора
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 24.08.05 07:28
Оценка:
Здравствуйте, DenisF, Вы писали:

DF>Как программно поменять кол-во точек на дюйм у монитора?


Пример утилиты, переключающей разрешение экрана
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Поменять кол-во точек на дюйм у монитора
От: DenisF Россия  
Дата: 24.08.05 10:02
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, DenisF, Вы писали:


DF>>Как программно поменять кол-во точек на дюйм у монитора?

DF>>Зарание спасибо!

Кё>Количество точек на дюйм — физическая характеристика монитора. Для современных LCD это 96 dpi.


Кё>Ты можешь:

Кё>1. Сменить размер шрифтов
Кё>2. Сменить разрешение (т.е число пикселов на дюйм).

Короче, мне нужно, чтобы моя прога умела делать так-же, как и винда, которая меняет разрешение здесь: Свойства Экрана -> Параметры -> Разрешение экрана, а то, что мне нужно здесь: Свойства Экрана -> Параметры -> Дополнительно -> Общие -> Масштаб(кол-во точек на дюйм), как я уже и говорил.

А как поменять размер шрифтов?
Re[2]: Поменять кол-во точек на дюйм у монитора
От: Vadim B  
Дата: 24.08.05 18:00
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Количество точек на дюйм — физическая характеристика монитора. Для современных LCD это 96 dpi.


Если это так, то почему тогда и у 17-дюймовых, и у 19-дюймовых мониторов "родное" разрешение одно и то же (1280x1024), соответственно, pixel pitch 0.264mm и 0.294mm?
Re[3]: Поменять кол-во точек на дюйм у монитора
От: Кодёнок  
Дата: 25.08.05 06:06
Оценка:
Здравствуйте, Vadim B, Вы писали:

Кё>>Количество точек на дюйм — физическая характеристика монитора. Для современных LCD это 96 dpi.


VB>Если это так, то почему тогда и у 17-дюймовых, и у 19-дюймовых мониторов "родное" разрешение одно и то же (1280x1024), соответственно, pixel pitch 0.264mm и 0.294mm?


Ты прав dpi у них разный получается.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.