游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2552|回复: 2

求助:唐老师,关于<学vc,编游戏>的问题

[复制链接]

23

主题

67

帖子

67

积分

注册会员

Rank: 2

积分
67
发表于 2004-10-20 18:50:00 | 显示全部楼层 |阅读模式
我是一个vc初学者,有幸碰到唐老师的<学vc,编游戏>系列,感觉非常适合我这样的初学者,在此由衷的表示感谢.
我花了2个星期(哎,可能是我太笨^_#)终于把第一课"我来了"看完了,也顺便 依葫芦画瓢做了一个.碰到几个问题,希望唐老师不吝赐教:
1.程序中一开始声明了一个全局变量p,但是好像只有在调用载入人物的时候
 cc.Format("%s人/c%05d.bmp",dir,p);才用到p,为什么不直接用
 cc.Format("%s人/c00000.bmp",dir);直接用图片的名字不好吗?我不知道唐老师的用意何在.
2.void CMyDlg::OnOK()
{        GetDlgItem(IDC_EDIT1)->ShowWindow(SW_SHOW);
        CClientDC dc(this);
                ……
我自己尝试做了一个,发现没有GetDlgItem这个函数,一样能运行出来,效果一样,这个函数在这里有什么用呢?
3.BOOL loadbmp(CString cc)
{        DeleteObject(bit);这里用到了这个函数,如果不用一样可以,那为什么要在这里调用这个函数呢?       
        bit=(HBITMAP)LoadImage       
                                (AfxGetInstanceHandle(),
                                 cc,
                                 IMAGE_BITMAP,       
                                 0,       
                                 0,       
                                 LR_LOADFROMFILE|LR_CREATEDIBSECTION
                                );
        if(bit==NULL) return FALSE;
********************************************       
        DIBSECTION ds;                                           这一部分我推测是为了得到人物
        BITMAPINFOHEADER &bm = ds.dsBmih;          图片大小,也就是w和h,在bitblt
        GetObject(bit,sizeof(ds),&ds);                      人物图片的时候用到,那GetObject
                w = bm.biWidth;                                     函数是如何把bm和bit对应起来的呢?
        h = bm.biHeight;  
********************************************                                    
        return TRUE;
谢谢!!也可以发我的E-Mail: sphinxjimmy@hotmail.com
再次感谢

10

主题

314

帖子

314

积分

中级会员

Rank: 3Rank: 3

积分
314
QQ
发表于 2004-10-21 01:35:00 | 显示全部楼层

Re:求助:唐老师,关于<学vc,编游戏>的问题

我对你提的第2个问题有兴趣。其他的其实唐老师做的很多啊。

也许我比你还采。大家一起讨论一下啊。

42

主题

334

帖子

344

积分

中级会员

Rank: 3Rank: 3

积分
344
发表于 2004-10-21 08:48:00 | 显示全部楼层

Re:求助:唐老师,关于<学vc,编游戏>的问题

1.cc.Format("%s人/c%05d.bmp",dir,p);
是为了与后面的章节衔接。因为后面就不是一幅图形了。
2.GetDlgItem(IDC_EDIT1)->ShowWindow(SW_SHOW);[作用书附录有]
是个习惯,我在控件引用后都要'SW_SHOW'一下。在界面复杂时,有用。
3.DeleteObject(bit);
这个问题书上讲过,每次LoadImage时都要新建一个bit,所以应该把上一个删除。你试一下不要这句。程序多运行一会准死得硬翘翘,资源耗尽。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-17 08:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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