Borland C++ FAQ Страница 17. Экран и рабочий стол
|
Страница 17 из 17
Экран и рабочий стол - Изменение картинки на рабочем столе
// Для изменения картинки на рабочем столе // используйте следующий код: SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "pic.bmp", SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); // где pic.bmp - имя вашего файла с картинкой
- Изменение картинки на рабочем столе(вариант 2)
//Первый вариант в C++Builder 5 вызывает ругань // BoundsChecker'a, хотя и работает. // Нижеприведенный вариант никакой ругани не вызывает, но // почему-то работает не на всех машинах. Для изменения картинки // на рабочем столе используйте следующий код: SystemParametersInfo(SPI_SETDESKWALLPAPER, 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_CXSCREEN);//Получить ширину экрана int screenH=GetSystemMetrics(SM_CYSCREEN);//Получить высоту экрана // в 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,DataHandle,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 ; } }
|