目的:在计算机从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");
}
请指点!!!!!!!!!!
代码:
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");
}
请指点!!!!!!!!!!
dmScreenSettings.dmPelsHeight = dwHeight; //“并非1024 而是比其小,大概960多”这里的dwHeight是1024
m_OldScreenPix.y = GetSystemMetrics(SM_CYFULLSCREEN);//获取真正显示的像素高 这个地方的值不是1024而是900多,并不是修改分辩率后的1024高。