MFC笔记

1.什么是类:
类其实就类似于C语言里面的结构体,它也代表一种数据类型。

符号整型的例子:int a;
1. int 就是一种数据类型,a就是int类型创建的一个对象(变量),变量及对象
C语言中的结构体:
typedef struct SDate{
    int year;
    int month;
    int day;
}Data;

Data date;  //Data就是一种数据类型,data就是Data数据类型创建出来的一个对象。

C++语言中的结构体:
typedef struct SData{
    int year;
    int month;
    int day;
    void MyPrintf()
    {
        printf("%d %d %d", year, month, day);
    }
}Data;

Data data; //Data就是一种数据类型,data就是Data数据类型创建出来的一个对象

上面的是C++里面真正的结构体,我们也可以叫他类。


其实真正在C++里面创建类是这样创建的
class CData
{
    int year;
    int month;
    int day;
    void MyPrintf()        //类里面可以定义函数 我们称为成员函数
    {
        printf("%d %d %d", year, month, day);
    }
}Data;

总结:
类:其实说白了就是一个数据类型,它和其他数据类型不同的是,它可以让用户
更加灵活的管理自己的数据。

对象:说白了就是C语言里面的变量
成员函数:

成员函数:操作类成员变量的函数叫做成员函数
成员变量:就是定义在类里面的变量叫做成员变量


2. 什么是MFC?
MFC(Microsoft Foundation Classes微软基础类库)。是微软公司提供的一个类库(class libraries),
以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。

3. MFC的学习规划
C++-> Windows API编程-> MFC框架


4.afxwin.h头文件
afxwin.h是MFC程序非常重要的头文件,CWinThread、CWinApp、CWnd等类都在此头
文件中,它还会包含winows.h头文件,最好保证该句头文件首行。

5.什么是Windows API?
Windows应用程序编程接口(Windows Application Programming Interface)
,程序员想编写Windows平台上的软件,必须借助Windows API,Win32 API也是就是
Microsoft Windows 32位平台的应用程序编程接口。

6.Windows API分类
Windows API包括几千个可调用的函数,他们大致可分为以下几类:
(1)基本服务
(2)组件服务
(3)用户界面服务
(4)图形多媒体服务
(5)消息和协作
(6)网络
(7)Web服务

7. 什么是MFC?
MFC框架是微软使用面向对象程序设计思想对Windows API的封装,通过类库封装了
大量的细节,如应用程序消息处理,设备环境绘图等,为你创建了程序的一般框架,
大大减少开发人员的重复编码工作量。

8.WindowsAPI与MFC的区别
               效率          复杂度         适合人群         灵活度
Windows API    简单高效      复杂繁琐       熟悉底层开发     更加灵活
MFC            封装损失小     快手上手
               部分性能       提高开发效率  新手,小白     灵活度稍差

9. 创建空解决方案

10.  添加项目

11. 测试按钮

如果你觉得每次按F5很费时间,你只是想看一下修改的效果,你就可以用测试按钮,它不会去编译

12. 编辑框

发现编辑框里面不能换行

13. 控件的ID

控件的ID一定要改,因为自动生成的ID不是一个好的ID 

14. 按钮

15. 静态文本

16. 多选框(CheckBox)

17. 获取控件的状态的两种方法

(1)方法一  做成局部变量

(2)方法二  

18. 添加消息响应

 

19. 下拉列表框

20. 滚动条

原生的滚动条对其操作后最终都会被还原,不可用

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC中,OnCtrlColor是一个消息处理函数,用于控制对话框中控件的颜色。当对话框绘制控件时,将调用该函数来获取控件的背景色和文本色。 OnCtrlColor函数的原型如下: HBRUSH OnCtrlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); 其中,pDC是与控件相关联的设备上下文,pWnd是指向控件的指针,nCtlColor是控件的类型。nCtlColor可以是以下之一: - CTLCOLOR_MSGBOX:消息框 - CTLCOLOR_EDIT:编辑框 - CTLCOLOR_LISTBOX:列表框 - CTLCOLOR_BTN:按钮 - CTLCOLOR_DLG:对话框 - CTLCOLOR_SCROLLBAR:滚动条 - CTLCOLOR_STATIC:静态文本 OnCtrlColor的返回值是一个HBRUSH类型的句柄,用于绘制控件的背景。如果返回NULL,则使用系统颜色作为控件的背景。 下面是一个OnCtrlColor函数的例子: ```cpp HBRUSH CMyDlg::OnCtrlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { switch (nCtlColor) { case CTLCOLOR_EDIT: pDC->SetTextColor(RGB(255, 0, 0)); // 设置文本颜色为红色 pDC->SetBkColor(RGB(255, 255, 255)); // 设置背景颜色为白色 return (HBRUSH)GetStockObject(WHITE_BRUSH); // 返回白色画刷 case CTLCOLOR_STATIC: pDC->SetTextColor(RGB(0, 0, 255)); // 设置文本颜色为蓝色 pDC->SetBkMode(TRANSPARENT); // 设置背景为透明 return (HBRUSH)GetStockObject(NULL_BRUSH); // 返回透明画刷 default: return CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); // 调用默认处理函数 } } ``` 这个例子中,当控件类型为编辑框时,设置文本颜色为红色,背景颜色为白色,并返回一个白色画刷;当控件类型为静态文本时,设置文本颜色为蓝色,背景为透明,并返回一个透明画刷;对于其他控件类型,调用默认的处理函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值