怎样实现分辨率从800*600转到1024*768或从1024*768转到800*600时,背景图片改变为对应的图片! 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int nWidth = GetSystemMetrics(SM_CXSCREEN); int nHeight = GetSystemMetrics(SM_CYSCREEN); if (nWidth<1024) { CString cstr; cstr.Format("对不起!您显示器的当前分辨率为%d*%d,本系统要求最小1024*768",nWidth,nHeight); AfxMessageBox(cstr); CBitmapDialog::OnCancel(); } if (nWidth>1024) { CString cstr; cstr.Format("对不起!您显示器的当前分辨率为%d*%d,本系统建议1024*768",nWidth,nHeight); AfxMessageBox(cstr); } int nWidth = GetSystemMetrics(SM_CXSCREEN);int nHeight = GetSystemMetrics(SM_CYSCREEN);Switch(nWidth * nHeight){case 1024 * 768: LoadBmp(One); break; case 800 * 600: LoadBmp(Two); break;default : break; } 响应系统窗口大小发改变的消息获取修改后的大小,按不同的大小选取 BMP 图ON_MESSAGE(WM_WINDOWPOSCHANGED,OnWindowPosChanged)//用户改变了窗口的大小时,更新系统界面LRESULT CDialogEx::OnWindowPosChanged(WPARAM wParam,LPARAM lParam){ WINDOWPOS* pPos; pPos = (WINDOWPOS*) lParam ; CDialog::OnWindowPosChanged(pPos); //如果是系统的屏幕大小改变则做一次再分 if( m_bIsDocked == TRUE ) { //获取系统屏幕的大小 int nSysCX=GetSystemMetrics(SM_CXSCREEN); int nSysCY=GetSystemMetrics(SM_CYSCREEN); if( m_nOldCXscr != nSysCX || m_nOldCYscr != nSysCY ) { m_nOldCXscr = nSysCX ; m_nOldCYscr = nSysCY ; ModifyDesktopWorkArea(FALSE); } } return 0;} 为什么所有的directx书都有这么个错误,是不是有什么历史典故 关于vc的存储问题 注册快捷键,遇到一个问题 开个VC交流的群方便大家讨论,有兴趣的朋友请进26406446 vb与c语言通讯? dll和activex以及线程 问一个很菜鸟的问题:vC中指针与句柄到底有什么区别? 位图保存? 请教那位大虾,如何终止另一个应用程序(.exe)? 紧急请教MFC中CArray和CStringArray数组的问题 加分再次求助!用什么方法才能处理以前DOS版foxpro的dbf数据表呢? TextOut的问题?
int nHeight = GetSystemMetrics(SM_CYSCREEN);
if (nWidth<1024)
{
CString cstr;
cstr.Format("对不起!您显示器的当前分辨率为%d*%d,本系统要求最小1024*768",nWidth,nHeight);
AfxMessageBox(cstr);
CBitmapDialog::OnCancel();
}
if (nWidth>1024)
{
CString cstr;
cstr.Format("对不起!您显示器的当前分辨率为%d*%d,本系统建议1024*768",nWidth,nHeight);
AfxMessageBox(cstr);
}
int nHeight = GetSystemMetrics(SM_CYSCREEN);Switch(nWidth * nHeight)
{
case 1024 * 768:
LoadBmp(One);
break;
case 800 * 600:
LoadBmp(Two);
break;
default :
break;
}
ON_MESSAGE(WM_WINDOWPOSCHANGED,OnWindowPosChanged)
//用户改变了窗口的大小时,更新系统界面
LRESULT CDialogEx::OnWindowPosChanged(WPARAM wParam,LPARAM lParam)
{
WINDOWPOS* pPos;
pPos = (WINDOWPOS*) lParam ;
CDialog::OnWindowPosChanged(pPos); //如果是系统的屏幕大小改变则做一次再分
if( m_bIsDocked == TRUE )
{
//获取系统屏幕的大小
int nSysCX=GetSystemMetrics(SM_CXSCREEN);
int nSysCY=GetSystemMetrics(SM_CYSCREEN); if( m_nOldCXscr != nSysCX || m_nOldCYscr != nSysCY )
{
m_nOldCXscr = nSysCX ;
m_nOldCYscr = nSysCY ;
ModifyDesktopWorkArea(FALSE);
}
}
return 0;
}