|
|
我是一个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
再次感谢
|
|