以及如何从程序设置分辨率

解决方案 »

  1.   

    int cxScreen, cyScreen ;     cxScreen = GetSystemMetrics (SM_CXSCREEN) ;
         cyScreen = GetSystemMetrics (SM_CYSCREEN) ;
      

  2.   

    GetSystemMetrics();
    SM_CXFULLSCREEN, SM_CYFULLSCREEN
      

  3.   

    //得到当前分辩率
    int nWidth  = GetSystemMetrics(SM_CXSCREEN);
    int nHeight = GetSystemMetrics(SM_CYSCREEN);
      

  4.   

    很好。那如果希望得到当前显示器显示的象素位数那?比如显示为24位,真彩32位等。如果回答,我另外开贴给分。ffish——胖胖鱼
      

  5.   

    void GetScreenInfo(void)
    {
    HDC screenDC;
    int nBitPixel;
             int nWidth, nHeight;
             CString strColor;         //得到当前分辩率
    screenDC = CreateDC("DISPLAY", NULL, NULL, NULL);
    nWidth  = GetDeviceCaps(screenDC, HORZRES);
    nHeight = GetDeviceCaps(screenDC, VERTRES); nBitPixel = GetDeviceCaps(screenDC, BITSPIXEL);
    switch (nBitPixel)
    {
    case 32:
    strColor = "32位真彩色";
    break;
    case 24:
    strColor = "24位真彩色";
    break;
    case 16:
    strColor = "16位增强色";
    break;
    case 8:
    strColor = "256色模式";
    break;
    case 4:
    strColor = "16色模式";
    break;
    case 1:
    strColor = "单色模式";
    break;
    default:
    strColor.Format("屏幕支持 %d  不同色", 1 << nBitPixel);
    }
    DeleteDC(screenDC);
    }