首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ChangeDisplaySettingsEx()总是返回DISP_CHANGE_BADPARAM

ChangeDisplaySettingsEx()总是返回DISP_CHANGE_BADPARAM
EN

Stack Overflow用户
提问于 2013-02-05 07:46:23
回答 1查看 1K关注 0票数 0

我试图使用WinAPI C++函数设置监视器的显示模式。

My Problem:调用ChangeDisplaySettingsEx()总是返回DISP_CHANGE_BADPARAM。我做错了什么?

我认为可能是我的devMode.dmDriverExtra值导致了错误。我读过MSDN,devMode.dmDriverExtra的解释令人困惑。它是什么,我如何找到监视器的dmDriverExtra?

是什么导致我下面的代码总是返回DISP_CHANGE_BADPARAM

代码语言:javascript
复制
DEVMODE devMode;
POINTL p                = {0,0};
_tcscpy(devMode.dmDeviceName, _T("\\Device\\00000072")); 
devMode.dmSpecVersion   = DM_SPECVERSION;
devMode.dmDriverVersion = 1;  // How do I determine the driver version?
devMode.dmSize          = sizeof(DEVMODE);
devMode.dmDriverExtra   = 0x5c0000; // 
devMode.dmFields        = DM_POSITION;
devMode.dmPosition      = p;

LONG res = ChangeDisplaySettingsEx(_T("\\Device\\00000072"), &devMode, mainHwnd, 0, NULL);
_tprintf(_T("%s: %d\n\n\n"), _T("\\Device\\00000072"), res); 
// The above printf always prints out "\Device\00000072: -5" (DISP_CHANGE_BADPARAM=-5)
EN

回答 1

Stack Overflow用户

发布于 2013-02-06 06:22:21

hwnd参数被记录为保留,必须为NULL。另外,dmDriverExtra是一个16位值,所以0x5c0000不适合。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14702481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档