斗地主代码分析第一天之启动对话框的创建(上)


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 显示头像

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值