Студия web-дизайна Хостмэйк
Наши работыКонтактыО компанииОтзывыГлоссарийСтатьи

FAQ по Экрану и рабочему столу

Статьи Программирование на С/С++


  1. Изменение картинки на рабочем столе

    color=green>// Для изменения картинки на рабочем столе
    // используйте
    следующий код:
    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,
    "pic.bmp",
    SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
    // где
    pic.bmp - имя вашего файла с картинкой


  2. Изменение картинки на рабочем столе(вариант
    2)


    //Первый вариант в C++Builder 5 вызывает
    ругань
    // BoundsChecker'a, хотя и работает.
    // Нижеприведенный вариант
    никакой ругани не вызывает, но
    // почему-то работает не на всех машинах. Для
    изменения картинки
    // на рабочем столе используйте следующий
    код:
    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,
    "pic.bmp",
    SPIF_UPDATEINIFILE);
    // где pic.bmp - имя
    вашего файла с картинкой


  3. Изменение параметров экрана

    color=green>// Для изменения параметров экрана используйте следующий
    //
    код:
    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);
    color=green>// ЗАМЕЧАНИЕ: при изменении параметров смотрите чтобы
    монитор
    поддерживал это режим


  4. Как узнать частоту обновления экрана

    color=green>// Для получения частоты обновления экрана напишите следующий
    код:
    HDC hDCScreen = GetDC(NULL);
    int Refresh
    = GetDeviceCaps(hDCScreen, VREFRESH);
    ReleaseDC(NULL,
    hDCScreen);
    // в Refresh содержится частота обновления
    экрана по горизонтали


  5. Как узнать разрешение экрана (VCL
    вариант)


    // Разрешение экрана можно узнать,
    прочитав значения
    // свойств Screen->Width и
    Screen->Height:
    int HorzRes =
    Screen->Width;
    int VertRes = Screen->Height;


  6. Как узнать разрешение экрана (WinAPI
    вариант)


    // Для получения разрешения экрана
    напишите следующий код:
    HDC hDCScreen =
    GetDC(NULL);
    int Horres = GetDeviceCaps(hDCScreen,
    HORZRES);
    int Vertres = GetDeviceCaps(hDCScreen,
    VERTRES);
    ReleaseDC(NULL, hDCScreen);
    // в Horres
    содержится разрешение экрана по горизонтали,
    // в Vertres содержится
    разрешение экрана по вертикали.


  7. Как узнать разрешение экрана

    color=green>// Для получения разрешения экрана напишите следующий
    код:
    int screenW=GetSystemMetrics(SM_CXSCREEN); color=green>//Получить ширину экрана
    int
    screenH=GetSystemMetrics(SM_CYSCREEN);//Получить высоту
    экрана

    // в screenW содержится разрешение экрана по
    горизонтали,
    // в screenH содержится разрешение экрана по
    вертикали.


  8. Отображение свойств дисплея

    color=green>// Следующий код отобразит на экране диалоговое
    // окно свойств
    дисплея:

    ShellExecute(NULL, "", "Desk.cpl", "", "",
    SW_SHOWNORMAL);


  9. Как поместить вид рабочего стола в буфер

    color=green>Напишите следующий код:
    #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);
    color=green>//Изображение экрана теперь в Bitmap, запишем его в бyфеp
    обмена
    Bitmap->SaveToClipboardFormat(Format,DataHandle,APalette);
    Clipboard()->SetAsHandle(Format,DataHandle);
    }
    __finally
    {
    delete
    Bitmap;
    ReleaseDC(0,DC);
    }
    }


  10. Как рисовать на Десктопе

    color=green>Напишите следующий код:
    HDC hdc = CreateDC (
    TEXT("DISPLAY"), NULL, NULL, NULL );
    Rectangle( hdc, 100,100, 200,
    200);
    DeleteDC ( hdc );


  11. Как закрасить рабочий стол по пикселю

    color=green>Напишите следующий код:
    void __fastcall
    TForm1::Button1Click(TObject *Sender)
    { TCanvas *dt = new TCanvas
    ;
    randomize();
    dt->Handle = GetDC(0);
    while
    (dt)
    {
    dt->Pixels[random(1024)][random(768)]= 0 ;
    }
    }

По материаллам сайта: www.realcoding.net

16.02.2006

Телефон

+7 8636 237-836

Поиск

VSESMI.ru — новости в СМИ.
Один из больших по объему информации проектов, работающих под управлением HostCMS.

Tur-Hotel.ru — отзывы об отелях
На сайте представлено описание отелей, рейтинг отелей с отзывами туристов.