|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.09.2008, 21:58 | #1 |
Заблокирован
Старожил
Регистрация: 20.07.2008
Сообщений: 4,032
|
Диагональ монитора.
Здравствуйте !!!
Подскажите, пожалуйста, как узнать диагональ монитора компьютера (в Delphi) и/или количество пикселей на дюйм и/или см. |
22.09.2008, 22:02 | #2 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
монитора или текущее разрешение?
Screen.Width; Screen.Height; |
22.09.2008, 22:43 | #3 |
Заблокирован
Старожил
Регистрация: 20.07.2008
Сообщений: 4,032
|
Лучше текущее разрешение.
|
08.12.2008, 23:52 | #4 | |
Регистрация: 07.12.2008
Сообщений: 8
|
Цитата:
Так что лови: Изменение картинки на рабочем столе // Для изменения картинки на рабочем столе // используйте следующий код: SystemParametersInfo(SPI_SETDESKWAL LPAPER, 0, "pic.bmp", SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); // где pic.bmp - имя вашего файла с картинкой Изменение картинки на рабочем столе(вариант 2) //Первый вариант в C++Builder 5 вызывает ругань // BoundsChecker'a, хотя и работает. // Нижеприведенный вариант никакой ругани не вызывает, но // почему-то работает не на всех машинах. Для изменения картинки // на рабочем столе используйте следующий код: SystemParametersInfo(SPI_SETDESKWAL LPAPER, 0, "pic.bmp", SPIF_UPDATEINIFILE); // где pic.bmp - имя вашего файла с картинкой Изменение параметров экрана // Для изменения параметров экрана используйте следующий // код: DEVMODE DM; DM.dmSize = sizeof(DEVMODE); DM.dmBitsPerPel = 16; // глубина цвета, бит на пиксель DM.dmPelsWidth = 1024; // разрешение по горизонтали DM.dmPelsHeight = 768; // разрешение по вертикали DM.dmFields = DM_BITSPERPEL + DM_PELSWIDTH + DM_PELSHEIGHT + DM_DISPLAYFREQUENCY; DM.dmDisplayFrequency = 75; // частота обновления экрана ChangeDisplaySettings(&DM, 0); // ЗАМЕЧАНИЕ: при изменении параметров смотрите чтобы монитор поддерживал это режим Как узнать частоту обновления экрана // Для получения частоты обновления экрана напишите следующий код: HDC hDCScreen = GetDC(NULL); int Refresh = GetDeviceCaps(hDCScreen, VREFRESH); ReleaseDC(NULL, hDCScreen); // в Refresh содержится частота обновления экрана по горизонтали Как узнать разрешение экрана (VCL вариант) // Разрешение экрана можно узнать, прочитав значения // свойств Screen->Width и Screen->Height: int HorzRes = Screen->Width; int VertRes = Screen->Height; Как узнать разрешение экрана (WinAPI вариант) // Для получения разрешения экрана напишите следующий код: HDC hDCScreen = GetDC(NULL); int Horres = GetDeviceCaps(hDCScreen, HORZRES); int Vertres = GetDeviceCaps(hDCScreen, VERTRES); ReleaseDC(NULL, hDCScreen); // в Horres содержится разрешение экрана по горизонтали, // в Vertres содержится разрешение экрана по вертикали. Как узнать разрешение экрана // Для получения разрешения экрана напишите следующий код: int screenW=GetSystemMetrics(SM_CXSCREE N);//Получить ширину экрана int screenH=GetSystemMetrics(SM_CYSCREE N);//Получить высоту экрана // в screenW содержится разрешение экрана по горизонтали, // в screenH содержится разрешение экрана по вертикали. Отображение свойств дисплея // Следующий код отобразит на экране диалоговое // окно свойств дисплея: ShellExecute(NULL, "", "Desk.cpl", "", "", SW_SHOWNORMAL); Как поместить вид рабочего стола в буфер Напишите следующий код: #include <Clipbrd.hpp> void __fastcall TForm1::Button1Click(TObject *Sender) { unsigned DataHandle; HPALETTE APalette; Word Format; Graphics::TBitmap *Bitmap=new Graphics::TBitmap; HDC DC=GetDC(0); try{ Bitmap->Height=Screen->Height; Bitmap->Width=Screen->Width; BitBlt(Bitmap->Canvas->Handle , 0, 0, Screen->Width, Screen->Height,DC, 0, 0, SRCCOPY); //Изображение экрана теперь в Bitmap, запишем его в бyфеp обмена Bitmap->SaveToClipboardFormat(Format,DataH andle,APalette); Clipboard()->SetAsHandle(Format,DataHandle); } __finally { delete Bitmap; ReleaseDC(0,DC); } } Как рисовать на Десктопе Напишите следующий код: HDC hdc = CreateDC ( TEXT("DISPLAY"), NULL, NULL, NULL ); Rectangle( hdc, 100,100, 200, 200); DeleteDC ( hdc ); Как закрасить рабочий стол по пикселю Напишите следующий код: void __fastcall TForm1::Button1Click(TObject *Sender) { TCanvas *dt = new TCanvas ; randomize(); dt->Handle = GetDC(0); while (dt) { dt->Pixels[random(1024)][random(768)]= 0 ; } } |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выбор монитора | Cannibal | Компьютерное железо | 3 | 25.09.2008 16:39 |
Выбор монитора | Ulagay700 | Компьютерное железо | 2 | 04.09.2008 09:59 |
Вопрос: Побочная диагональ матрицы в С++ | john350 | Помощь студентам | 4 | 16.03.2008 22:19 |
Определение разрешения монитора(ов) | lamonana | Общие вопросы Delphi | 2 | 09.03.2008 18:56 |
данные о видеосистеме: тип видеоадаптера, тип монитора, режим монитора: разрешение, частота обновления | WaxeP | Win Api | 9 | 15.04.2007 18:12 |