1 斗地主程序简介
打开斗地主程序,首先弹出启动对话框,在该对话框中选择头像和设置昵称,如图1-1所示。
图1-1 头像选择和昵称设置
点击“确定”按键后进入主界面进行斗地主游戏,如图1-2所示。
图1-2开始斗地主游戏
本程序使用VS2008程序进行编写。
2 启动对话框的创建
2.1 创建对话框类
首先在项目中添加一个对话框资源,将其ID设置为“IDD_START”,并且为该对话框创建一个类,名为CDlg_Start,如图2-1所示。
图2-1 CDlg_Start类的创建
2.2 构建对话框界面
按照图1-1所示的界面构造,为对话框创建控件,如图2-2所示。
图2-2 启动对话框结构及控件ID
2.3 对话框的弹出
在“我的斗地主.cpp”源文件的“C我的斗地主App::InitInstance()”函数中弹出弹出该对话框。
1 CDlg_Start dlg;
2 int nResponse = dlg.DoModal();
其中,第1行定义了CDlg_Start类的对象,即创建的对话框类的对象;通过该类的对象调用DoModal()函数弹出对话框。
2.3 设置对话框控件
2.3.1 标题控件的设置
IDC_TITLE是“PictureControl”控件,用来显示启动对话框中“开开心心斗地主”的标题。首先在项目资源导入包含“开开心心斗地主”标题的位图,将其名称设置为“IDB_TITLE”,在IDC_TITLE控件的“Image”属性中,选择“IDB_TITLE”,此时在该控件中就会显示“开开心心斗地主”标题,如图2-3和2-4所示。
图2-3 设置Image属性
图2-4 设置IDC_TITLE属性后的对话框
2.3.2 头像控件的设置
为头像位图控件添加类别为“Control”的变量m_ctlFace,接下来利用该变量设置头像控件。
(1)头像位图的导入
将位图头像导入到Bitmap资源中,分别命名为“IDB_FACE0”、“IDB_FACE1”、 “IDB_FACE2”、 “IDB_FACE3”,如图2-5所示。
图2-5 头像位图的导入
(2)图像位图句柄的获取
声明CBitmap类的对象m_cBitmap0和HBITMAP类的对象m_hBmp0。在对话框类的OnInitDialog()函数中将头像位图资源与m_cBitmap0关联,
m_cBitmap0.LoadBitmap(IDB_FACE0);
其中,IDB_FACE0是导入的头像位图资源的ID。
通过m_cBitmap0获取m_hBmp0,即图像位图句柄。
m_hBmp0 = (HBITMAP)m_cBitmap0.GetSafeHandle();
其中,GetSafeHandle()函数返回的是Windows GDI对象的句柄,类型是HGDIOBJ,因此需要加入(HBITMAP)进行类型转换。可以通过以上方法来获取其它几个头像位图句柄。
(3)头像的显示
在初始情况下,头像控件显示第一个头像位图。通过头像控件的变量m_ctlFace来设置要显示的头像。
m_ctlFace.SetBitmap(m_hBmp0);
其中,m_hBmp0是获取到的图像位图句柄。如图2-6所示。
图2-6 显示头像