irect 8-加入了SetDisplayMode(WIDTH,HEIGHT,BIT,0,0)这行代码之后原来运行得好好的程序会自动退出,求解?

问题描述

加入了SetDisplayMode(WIDTH,HEIGHT,BIT,0,0)这行代码之后原来运行得好好的程序会自动退出,求解?

部分代码如下:
#define WIDTH 640
#define HEIGHT 480
#define BIT 8
int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hpreinstance,LPSTR lpcmdline,int ncmdshow)
{
...
//Create DirectDraw
if(FAILED(DirectDrawCreateEx(NULL,(void**)&lpdd7,IID_IDirectDraw7,NULL)))return 0;

//Set cooperative level
if(FAILED(lpdd7->SetCooperativeLevel(hwnd,DDSCL_EXCLUSIVE|
DDSCL_FULLSCREEN|
DDSCL_ALLOWMODEX|
DDSCL_ALLOWREBOOT)))return 0;

//Set Display Mode
if(FAILED(lpdd7->SetDisplayMode(WIDTH,HEIGHT,BIT,0,0))) return 0;

while(1)
{
if(KEYDOWN(VK_ESCAPE)) //marco
{
PostMessage(hwnd,WM_DESTROY,0,0);
break;
}
if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
if(msg.message==WM_QUIT)
break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
但是将函数调用的参数改成SetDisplayMode(1920,1080,32,0,0),程序是正常的。
我觉得很奇怪为什么同样是(640,480,8,0,0)的参数用《Windows游戏编程大师技巧》提供的源文件进行编译就可以正常运行,但是我再重写一次就运行失败,这是为什么?

解决方案

看看你的显示器是否支持你给的模式。

时间: 2024-09-10 09:07:42

irect 8-加入了SetDisplayMode(WIDTH,HEIGHT,BIT,0,0)这行代码之后原来运行得好好的程序会自动退出,求解?的相关文章

为什么div中直接设置width,height,color没有效果?一定要通过css的样式来设置吗?

问题描述 为什么div中直接设置width,height,color没有效果?一定要通过css的样式来设置吗? 像如下的样子设置div并没有效果. 但是如果是这样设置就有效果 #testdiv{ width:100; height:100; color:blue; } 是因为div只能通过css的样式来设置吗? 解决方案 用JS设置div的width,height(精华版) 解决方案二: div中你是怎么设置 的?发上来看看吧! 解决方案三: div 元素好像只支持align 属性 解决方案四:

html5-fillRect(x,y,width,height)的height不起作用?

问题描述 fillRect(x,y,width,height)的height不起作用? var mycanvas = document.getElementById("can"); var context = mycanvas.getContext("2d"); context.fillStyle = "red"; context.fillRect(0,0,200,2000): 这里的height怎么设置都不变的,为什么啊,谢谢 解决方案 con

as3:sprite作为容器使用时,最好不要指定width,height

官方解释: 除 TextField 和 Video 对象以外,没有内容的显示对象(如一个空的 Sprite)的高度为 0,即使您尝试将 height 设置为其它值,也是这样. 如果您设置了 height 属性,则 scaleY 属性会相应调整(width类推)   也就是说,一个空的sprite,既使您设置了width,height也是没用的(而且人为设置了反而会有负作用,见下面的代码) var _sprite:Sprite = new Sprite(); _sprite.width=100;

织梦如何去除img中的style width height属性

在dede/article_add.php中搜索如下代码: $body = AnalyseHtmlBody($body,$description,$litpic,$keywords,'htmltext'); 在这句代码的下面插入如下代码: //去除img中的style属性  $body = preg_replace("/style=\\\.+?['|\"]/i",'',$body);  //去除img中的width,height属性  $exp=Array("/he

<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0"/>

网页手机wap2.0网页的head里加入下面这条元标签,在iPhone的浏览器中页面将以原始大小显示,并不允许缩放.   <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">       width - viewport的宽度 height - viewpo

元素未显示设置width/height时IE中使用currentStyle获取为auto_javascript技巧

我们知道获取元素的实际宽高在IE中可以使用currentStyle属性.但如果没有显示的去设置元素的宽高,那么使用该属性将获取不到,获取的值为auto.如下 复制代码 代码如下: <div>abcd</div> <script> var div = document.getElementsByTagName('div')[0]; alert(div.currentStyle.width); alert(div.currentStyle.height); </scr

浏览器默认样式(user agent stylesheet)+cssreset

每种浏览器都有一套默认的样式表,即user agent stylesheet,在写网页时,没有指定的样式,按浏览器内置的样式表来渲染.这是合理的,像word中也有一些预留样式,可以让我们的排版更美观整齐.不同浏览器甚至同一浏览器不同版本的默认样式是不同的.这才带来了很多的坑,让大家用cssreset去填.. 一.浏览器默认样式 了解各浏览器的默认样式能让我们对每条Reset规则的写法做到心中有数,对我们了解浏览器的差异,写各浏览器兼容的代码也有很大帮助. 所以先看看浏览器默认样式长什么样: FF

图像处理------移动模糊

卷积模糊或者卷积平滑滤波,可以消除图像噪声,也可以产生一些常见的图像模糊特效,但 是移动模糊特效也是基于卷积,相比于Box Blur, Gaussian Blur的算法,移动模糊只需要完成 一次的一维卷积,所不同的是一维卷积的完成,要基于一定的角度,而不是只是在水平和垂 直两个方向上.移动模糊的一维卷积要考虑一下三个因素:                      a. 操作数的多少 - 即距离(Distance)                      b.一维操作数在像素数组中的移动方向

图像处理------调整亮度与饱和度

什么是亮度: 简单点说一幅图像的亮度属性是图像的RGB值的大小,RGB各个值越大亮度越高RGB 分量取值范围为0-255之间.调整图像亮度. 什么是饱和度: 饱和度是是指颜色的强度,调整饱和度可以修正过度曝光或者未充分曝光的图片.使 图像看上去更加自然. 基本思想: 通常在RGB色彩空间调整亮度与饱和度不是很直观,而HSL彩色空可以很直观表示出 每个像素的饱和度与亮度.所以首先读取图像的像素RGB值然后再转换到HSL空间得 到饱和度与亮度值,调整以后再从HSL空间转换到RGB空间的RGB值,对每