win98下如何设置和更改显示模式(50分)

  • 主题发起人 主题发起人 Michaelzhao
  • 开始时间 开始时间
M

Michaelzhao

Unregistered / Unconfirmed
GUEST, unregistred user!
代码:
win98下如何设置和更改显示模式,如16色,256色,加强16色,真彩色
 
桌面空白外单击鼠标右键,选择属性,选择设置
 
转一个

直接在程序中更改显示模式
01-9-13 下午 01:58:07

--------------------------------------------------------------------------------


可以访问系统注册表HKEY_CURRENT_CONFIG/DISPLAY/SETINGS来获知当前的显示分辨率和颜色数。
但常用以下方法:
关键的API函数是EnumDisplaySettings和ChangeDisplaySettings。前者用来获得当前显示驱动所支持的所有显示模式,而后者用来改变显示模式。如果有个程序改变了显示模式, 则Windows会向所有正在运行的程序发送WM_DISPLAYCHANGE消息。获得当前显示模式可以使用下面的函数,它比访问注册表可靠。
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。

 
接受答案了.
 

Similar threads

回复
0
查看
815
不得闲
D
回复
0
查看
837
DelphiTeacher的专栏
D
D
回复
0
查看
843
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部