180度旋转未发生.它给c带来了失败 [英] The 180 degree rotation is not taking place. it gives failure in c

查看:86
本文介绍了180度旋转未发生.它给c带来了失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

更改显示设置的程序:


Progaram for Changing the display setting:


#include "stdafx.h"
#include <stdio.h>

#define WINVER 0x0501
#define WIN32_LEAN_AND_MEAN
#include <windows.h>

int main(int argc, char* argv[])
{
	DEVMODE dm;
	
	ZeroMemory(&dm, sizeof(dm));
	
	dm.dmSize = sizeof(dm);
   
   if (0 != EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &dm))
   {


     dm.dmPelsHeight= 800;
     dm.dmPelsWidth = 600;

	 dm.dmDisplayOrientation = DMDO_180;

	 dm.dmFields =  DM_PELSWIDTH | DM_PELSHEIGHT | DM_DISPLAYORIENTATION;
	 
	 if(DISP_CHANGE_SUCCESSFUL  == ChangeDisplaySettings(&dm,0))
	 {
		 printf("\nSuccess\n");
	 }
	 else
	 {
		 printf("\nFailure\n");
	 }
   }
   return 0;
}



它工作正常.
如果我尝试90度和270度旋转,就可以了.
但是,如果我尝试使用0和180表示失败.
请给我解决方案.

[edit]添加了代码块以保留格式,并删除HTML标记处理-OriginalGriff [/edit]
[edit]缺少添加的结束标记-哎呀! -OriginalGriff [/edit]



It works fine.
if i try for the 90 and 270 rotation means it fine.
But if i try 0 and 180 means it goes to failure .
Please give the solution for me.

[edit]Code block added to preserve format, and remove HTML tag processing - OriginalGriff[/edit]
[edit]Missed the added closing tags - doh! - OriginalGriff[/edit]

推荐答案

ChangeDisplaySettings实际上返回一个值,指出发生了什么问题.除了检查是否有成功结果外,还请尝试使用开关,而不只是故障"以外的内容.如果您检查文档,则可能的返回值为:
ChangeDisplaySettings actually returns a value saying what went wrong. Instead of checking for the successful result only try using a switch with something more than just ''Failure''. If you check the docs the possible return values are:
DISP_CHANGE_SUCCESSFUL
DISP_CHANGE_BADDUALVIEW
DISP_CHANGE_BADFLAGS
DISP_CHANGE_BADMODE
DISP_CHANGE_BADPARAM
DISP_CHANGE_FAILED
DISP_CHANGE_NOTUPDATED
DISP_CHANGE_RESTART 


如果90度和270度都能正常工作,则可能是该设备无法执行此操作.您可以使用ChangeDisplaySettingsEx使用CDS_TEST标志将其检出. (或在调用EnumDisplaySettings之后在dm中显示结果)
http://msdn.microsoft.com/en-us/library/aa452713.aspx [ ^ ]

祝你好运!
If 90 and 270 degrees work it could just be that the device isn''t capable to do it. You could check it out using the CDS_TEST flag using ChangeDisplaySettingsEx. (or with the result in dm after you call EnumDisplaySettings)
http://msdn.microsoft.com/en-us/library/aa452713.aspx[^]

Good luck!


这篇关于180度旋转未发生.它给c带来了失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆