用户机器的分辨率不同,用VC做的程序,界面不能适应性的发生变化,我做的全屏程序,请问如何做到窗口大小发生变化,窗口里的元素大小与位置也将相应的作出变化。
解决方案 »
- 关于线程(200分)
- 求序列号(一经验正能用,即给分)!!
- 求助:我新建了一个 Win32 Application 工程 (Games3) ,然后按 F5 ,提示有错,这是为什么?谢谢!
- 100分求解!!!!!vc + ado + sql2000 如何取得数据库字段的描述?? vv
- 视的最大化问题??
- 弹出式菜单,鼠标位置问题
- ●●●返回WORD数组的函数应该怎样写●●●
- 如何在一个CControlBar类中加入一个View类
- 如何重载CMenu的DrawItem()?(高分相送!)
- 在VC中如何对MSACCESS97数据库进行压缩...,MSACCESS97数据库内部是如何对数据的增删等操作做记录的?
- 用VC搞CAD开发前景如何呀?希望有这方面经验的兄弟们给点儿建议!
- 两台机器的数据库间互导数据
HDC hDisplay = CreateDC(_T("DISPLAY"), NULL, NULL, NULL);
_ASSERT(NULL!=hDisplay);
//得到屏幕的大小
int nScreenWidth = GetDeviceCaps(hDisplay, HORZRES);
int nScreenHeight = GetDeviceCaps(hDisplay, VERTRES);
//创建内存DC
HDC hMemDc = CreateCompatibleDC(hDisplay);
_ASSERT(NULL != hMemDc);
//创建位图
HBITMAP hBmp = CreateCompatibleBitmap(hDisplay, nScreenWidth, nScreenHeight);
_ASSERT(NULL != hBmp);
//选择位图
HBITMAP hOldBmp = (HBITMAP)SelectObject(hMemDc, hBmp);
_ASSERT(NULL != (DWORD)hOldBmp || GDI_ERROR != (DWORD)hOldBmp);
//复制图形
BOOL blnReturnValue = BitBlt(hMemDc, 0, 0, nScreenWidth, nScreenHeight, hDisplay, 0, 0, SRCCOPY);
_ASSERT(0 != blnReturnValue);
//再次选择
hBmp = (HBITMAP)SelectObject(hMemDc, hOldBmp);
_ASSERT(NULL != (DWORD)hBmp || GDI_ERROR != (DWORD)hBmp);
DeleteDC(hMemDc);
hMemDc = NULL;
int nBits = GetDeviceCaps(hDisplay, BITSPIXEL); //每个象素的位数
DWORD dwLineBits = 0; //每行字节数
switch (nBits)
{
case 16:
dwLineBits = nScreenWidth*2;
break;
case 24:
dwLineBits = (nScreenWidth+1)*3-((nScreenWidth+1)*3)%4;
break;
case 32:
dwLineBits = nScreenWidth*4;
break;
default:
AfxMessageBox("windows screen's format is not right!!");
break;
}
用以上这个方法肯定可以得到屏幕的大小,当然你要用你得稍微改一下!然后具体的你要更改的比例你得自己设定。
EnumDisplaySettings
SetWindowPos