获取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关键字,没有找到