首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

获取Windows XP的屏幕分辨率范围,该如何解决

2011-12-29 
获取Windows XP的屏幕分辨率范围,急!我想获取WindowsXP中的 显示属性 -设置 -屏幕分辨率 下面的调

获取Windows XP的屏幕分辨率范围,急!
我想获取Windows   XP中的 "显示属性 "-> "设置 "-> "屏幕分辨率 "下面的调节滑块两端对应的分辨率,该怎么获取?请各位大虾帮忙.
不要用EnumDisplaySettings获得,因为默认XP的最小分辨率是800*600,而EnumDisplaySettings获得的最小能到640*480,两着不一致.


[解决办法]
用api函数GetSystemMetrics,下面是一个win32sample

/*-----------------------------------------------------
SCRNSIZE.C -- Displays screen size in a message box
(c) Charles Petzold, 1998
-----------------------------------------------------*/

#include <windows.h>
#include <tchar.h>
#include <stdio.h>

int CDECL MessageBoxPrintf (TCHAR * szCaption, TCHAR * szFormat, ...)
{
TCHAR szBuffer [1024] ;
va_list pArgList ;

// The va_start macro (defined in STDARG.H) is usually equivalent to:
// pArgList = (char *) &szFormat + sizeof (szFormat) ;

va_start (pArgList, szFormat) ;

// The last argument to wvsprintf points to the arguments

_vsntprintf (szBuffer, sizeof (szBuffer) / sizeof (TCHAR),
szFormat, pArgList) ;

// The va_end macro just zeroes out pArgList for no good reason

va_end (pArgList) ;

return MessageBox (NULL, szBuffer, szCaption, 0) ;
}

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
int cxScreen, cyScreen ;

cxScreen = GetSystemMetrics (SM_CXSCREEN) ;
cyScreen = GetSystemMetrics (SM_CYSCREEN) ;
MessageBoxPrintf (TEXT ( "ScrnSize "),
TEXT ( "The screen is %i pixels wide by %i pixels high. "),
cxScreen, cyScreen) ;
return 0 ;
}



[解决办法]
DirectX中封装了 不过用起来还是自己写得好
[解决办法]
都是取的一样的,继续为你关注!



[解决办法]
因为会取得刷新率和色彩数,楼主可以找找规律把没用的信息过滤掉
[解决办法]
to:xuyijie2005()
查过注册表了,我用的768关键字,没有找到

热点排行