游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2124|回复: 7

怎么我的句柄HWND总是出现问题.请高手帮我调一下,DDRAW方

[复制链接]

15

主题

79

帖子

79

积分

注册会员

Rank: 2

积分
79
发表于 2006-8-14 16:14:00 | 显示全部楼层 |阅读模式
怎么我的句柄HWND总是出现问题.请高手帮我调一下,我调不出来!
各位大哥,帮帮忙,我把这个又从写了一遍,可结果这个句柄还是没有值传进去,

非常感谢!!!!!!!!!!! [em6] [em6] [em10] [em10] [em10] [em10]

sf_2006814161355.rar

227.45 KB, 下载次数:

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2006-8-14 19:59:00 | 显示全部楼层

Re:怎么我的句柄HWND总是出现问题.请高手帮我调一下,DDRAW

我跟踪了一下你的程序,发现如下几个地方:
1、你的程序是全屏的吧,但为什么DirectDraw.cpp的82行中是DDSCL_EXCLUSIVE,如果是全屏的话,应该是DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE。
2、InitGame.cpp的49行,为什么没有初始化ddraw这个变量,就使用了。
以上改好后,就可以了。

15

主题

79

帖子

79

积分

注册会员

Rank: 2

积分
79
 楼主| 发表于 2006-8-16 15:02:00 | 显示全部楼层

Re:怎么我的句柄HWND总是出现问题.请高手帮我调一下,DDRAW

好的,谢谢,我回去看看,刚开始是全屏的,后来为了调试我把窗口改了

15

主题

79

帖子

79

积分

注册会员

Rank: 2

积分
79
 楼主| 发表于 2006-8-16 15:07:00 | 显示全部楼层

Re:怎么我的句柄HWND总是出现问题.请高手帮我调一下,DDRAW

你调试以后是可以显示背景了吗?

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2006-8-16 22:04:00 | 显示全部楼层

Re:怎么我的句柄HWND总是出现问题.请高手帮我调一下,DDRAW

no,不能显示背景,是黑屏,你还得看看程序呀!

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2006-8-18 23:28:00 | 显示全部楼层

Re:怎么我的句柄HWND总是出现问题.请高手帮我调一下,DDRAW

不好意思,最近比较忙,今天总算有点时间了。我改了一下你的部分代码,可以运行了:
InitGame.cpp
CInitGame::~CInitGame()
{
        delete ddraw;
}

bool CInitGame::InitGame(HWND wnd, HINSTANCE hInst)
{
        hWnd = wnd;
        hInstance = hInst;

        //初始化ddraw

        ddraw = new DirectDraw();
       
        if (!ddraw->InitDraw(wnd,hInst))
        {
                MessageBox(NULL,"InitDraw is Faild!","error",MB_OK);
                return false;
        }

        g_pDDSLoading = ddraw->LoadBitmap("loading.bmp", 600, 400);


        return true;
}

void CInitGame::Render()
{
        //ddraw = new DirectDraw();

        ddraw->ClearPrimarySurface();

        //加载Loading位图
       
        g_pDDSBuffer->Blt(NULL, g_pDDSLoading, NULL, NULL, NULL);
        g_pDDSPrimary->Flip(NULL, DDFLIP_WAIT);


        Sleep(1000);

}

DirectDraw.cpp
bool DirectDraw::InitDraw(HWND wnd,HINSTANCE hInst)
{
。。。
//创建缓冲页面
        memset(&ddsd2, 0, sizeof(ddsd2));
        ddsd2.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER;

        if (FAILED(g_pDDSPrimary->GetAttachedSurface(&ddsd2.ddsCaps, &g_pDDSBuffer)))
        {
                MessageBox(NULL,"GetAttachedSurface is faild!","error",MB_OK);
                return FALSE;
        }

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2006-8-21 19:24:00 | 显示全部楼层

Re:怎么我的句柄HWND总是出现问题.请高手帮我调一下,DDRAW

楼主没时间看看吗?

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-8-22 00:34:00 | 显示全部楼层

Re:怎么我的句柄HWND总是出现问题.请高手帮我调一下,DDRAW

专业灌水。
友情一顶。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 04:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表