VC++学习笔记 three-day 对话框、常用控件和图片路径问题

第三天 对话框、常用控件
一、对话框
1)模态对话框
    a)资源视图 ->Dialog -> 右击 -> 插入Dialog
    b)创建对话框对象 CDialog
    c)以模态方式运行 CDialog::DoModal
2)非模态对话框
    a)资源视图 ->Dialog -> 右击 -> 插入Dialog
    b)创建对话框对象,需要在 .h 的地方声明为成员变量 CDialog
    c)创建对话框(在构造函数或OnCreate(), 目的只创建一次)CDialog::Create
    d)显示窗口 CWnd::ShowWindow
3)自定义对话框类(重要)
     a)资源视图 ->Dialog -> 右击 -> 插入Dialog
     b)点击对话框模板 -> 右击 -> 添加类
     c)多出来一个自定义的类, .h 类中有个枚举和对话框关联 enum{IDD=IDD_DIALOG2}

二、基于对话框(控件)编程
1)基于对话框应用程序框架
     a)应用程序类:继承于 CWinApp
         InitInstance():程序入口地址
     b)对话框类:继承于 CDialogEx
         OnInitDialog():对话框的初始化工作
         DoDataExchange():控件和变量的关联和交换

三、常用控件
1)静态控件CStatic(Qt中的标签QLable)
     显示一些文字信息
     a)Caption:修改显示内容
     b)ID:xxx_STATIC,静态ID,不响应任何消息(事件)
2)按钮CButton
     a)Caption:修改显示内容
     b)处理消息:BN_CLICKED,用户点击按钮自动触发
         Ⅰ)属性 -> 控制事件 -> 选择所需事件
         Ⅱ)双击按钮,自动生成消息处理函数
     
3)逃跑按钮(类似Qt提升)
     a)自定义按钮类(这里类名取得MyButton),继承于CButton
       选择类视图最开始的文件夹 -> 右击 -> 添加类 -> MFC -> MFC类
         Ⅰ)处理鼠标移动消息 WM_MOUSEMOVE
         Ⅱ)获取父窗口指针 CWnd::GetParent
         Ⅲ)获取父窗口客户区域的范围 CWnd::GetClientRect
         Ⅳ)获取按钮的范围 CWnd::GetWindowRect
         Ⅴ)产生随机坐标 rand()%w
         Ⅵ)移动按钮的位置 Cwnd::MoveWindow
     b)变量关联
       选中按钮 -> 右击 -> 添加变量 -> 变量类型:MyButton ->变量:button
       最终,button和我们所选中的按钮关联成功,操作button,相当于操作ui上的按钮(Qt的提升)
     c)为按钮设置位图
         Ⅰ)按钮属性:Bitmap -> True
         Ⅱ)在对话框类中 OnInitDialog() 做如下处理
              a)创建位图模板
              b)创建位图对象 CBitmap
              c)加载位图资源 CBitmap::LoadBitmap
              d)按钮设置位图 CButton::SetBitmap
              e)获取图片大小 CBitmap::GetBitmap
              f)重新设置按钮大小(

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值