目的:在计算机从1024*768分辩率改动到1280*1024的分辩率时,桌面显示宽度正常,桌面显示高度不全.是否有方法修改桌面显示的高度与分辩率对应.本人是想全屏显示对话框窗体.
代码:
m_OldScreenPix.x = GetSystemMetrics(SM_CXFULLSCREEN);//获取真正显示的像素宽
m_OldScreenPix.y = GetSystemMetrics(SM_CYFULLSCREEN);//获取真正显示的像素高 dwWidth = GetSystemMetrics(SM_CXSCREEN);
dwHeight = GetSystemMetrics(SM_CYSCREEN);
        DEVMODE dmScreenSettings; 
        memset(&dmScreenSettings,0,sizeof(dmScreenSettings)); 
        dmScreenSettings.dmSize = sizeof(dmScreenSettings); 
        dmScreenSettings.dmPelsWidth = dwWidth; //1280
        dmScreenSettings.dmPelsHeight = dwHeight; //并非1024 而是比其小,大概960多
        dmScreenSettings.dmBitsPerPel = 32; 
        dmScreenSettings.dmFields = DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;
        if(ChangeDisplaySettingsEx(NULL,&dmScreenSettings,NULL,CDS_FULLSCREEN,NULL)       //设置全屏模式
            !=DISP_CHANGE_SUCCESSFUL)
{
AfxMessageBox("failed");
}
请指点!!!!!!!!!!

解决方案 »

  1.   

    你的显卡驱动支持那个分辨率吗?ChangeDisplaySettingsEx返回值是成功啊,还是失败啊
      

  2.   

    上面提问的地方我说错了,修正一下:
    dmScreenSettings.dmPelsHeight = dwHeight; //“并非1024 而是比其小,大概960多”这里的dwHeight是1024
    m_OldScreenPix.y = GetSystemMetrics(SM_CYFULLSCREEN);//获取真正显示的像素高 这个地方的值不是1024而是900多,并不是修改分辩率后的1024高。