100分求2个API函数!!急急急!!!

lxwq 2003-12-16 06:33:52
获取和设置屏幕的分辨率,的API函数是什么?
...全文
43 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wangzi163 2003-12-18
GetSystemMetrics(SM_CXSCREEN)
GetSystemMetrics(SM_CYSCREEN)
回复
wqs6 2003-12-18
获取
int xSize=::GetSystemMetrics(SM_CXSCREEN);
int ySize=::GetSystemMetrics(SM_CYSCREEN);

设置可以参考以下
Bool CVideoModes :: GetCurrentVideoSettings(DEVMODE *devmode)
{
HWND hwndDesktop=GetDesktopWindow();
HDC hdc=GetDC(hwndDesktop);
devmode -> dmSize =sizeof(DEVMODE);
devmode -> dmBitsPerPel=GetDeviceCaps(hdc,BITSPIXEL);
devmode -> dmPelsWidth=GetSystemMetrics(SM_CXSCREEN);
devmode -> dmPelsHeight=GetSystemMetrics(SM_CYSCREEN);
devmode -> dmFields=DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
return TRUE;
}
下面的代码展示了如何使用EnumDisplaySettings获得当前支持的所有显示模式:
int modenum,done;
DEVMODE devmode;
done=0;
modenum=0;
do
{
done=!EnumDisplaySettings(NULL,modenum,&devmode);
AddToList(&devmode);
modenum++;
}while (!done);
设置显示模式的方法如下:
rc = ChangeDisplaySettings(&devmodeCDS_FULLSCREEN));这里的devmode就
是前面使用EnumDisplaySettings获得的。
如果设置正常,返回值DISP_CHANGE_SUCCESSFUL。

摘自:http://www.ccw.com.cn/htm/produ/special/vc/jiqiao/01_9_13_5.asp


另外还有程序段中的运用:
void __fastcall TForm1::btnGetClick(TObject *Sender)
{
int x,y;
x = GetSystemMetrics(SM_CXSCREEN);
y = GetSystemMetrics(SM_CYSCREEN);
ShowMessage("显示器水平分辨率:" + AnsiString(x) + "\n\n显示器垂直分辨率:" + AnsiString(y));

}
//---------------------------------------------------------------------------
void __fastcall TForm1::DynamicResolution(int x,int y)
{
TDeviceMode lpDevMode;
bool Result;

Result = EnumDisplaySettings(NULL,0,&lpDevMode);
if (Result)
{
lpDevMode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
lpDevMode.dmPelsWidth = x;
lpDevMode.dmPelsHeight = y;
Result = ChangeDisplaySettings(&lpDevMode,0);
// = DISP_CHANGE_SUCCESSFUL;
}
}
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
DynamicResolution(800,600);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
DynamicResolution(1024,768);
}

回复
arvid_gs 2003-12-18
获取:GetSystemMetrics
设置 ChangeDisplaySettings
回复
iamknight 2003-12-16
ChangeDisplaySettings()
回复
checkyvc6 2003-12-16
DEVMODE mode;
memset(&mode, 0, sizeof(DEVMODE));
mode.dmSize = sizeof(DEVMODE);
mode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
mode.dmPelsWidth = 800;
mode.dmPelsHeight = 600;
ChangeDisplaySettings(&mode, CDS_RESET);
回复
晨星 2003-12-16
获取可以使用GetSystemMetrics.
设置不太清楚。
回复
相关推荐
发帖
图形处理/算法
创建于2007-09-28

1.9w+

社区成员

VC/MFC 图形处理/算法
申请成为版主
帖子事件
创建了帖子
2003-12-16 06:33
社区公告
暂无公告