VC 深入详解 学习笔记

来源:互联网 发布:语文行知天下八上答案 编辑:程序博客网 时间:2024/04/30 02:37
 

 

1: 使用定义二进制的值来定义相关的意义 DWORD W = CS_HREDRAW | CS_VREDRAW

这样就可以通过“或”运算来组合,同时要是不需要某个属性可以通过 取反结合“与”

运算来实现   DWORD W = CS_HREDRAW | CS_VREDRAW

             DWORD H = W & ~CS_VERDRAW

2:   LoadIcon(), LoadCusor(), 如果想用标准的 Icon Cusor 则第一个参数为 NULL

3 DC (设备上下文)是为了解决不同平台驱动设备而抽象的更高一层。

4MessageBox()返回值

5 :如果if()判断条件又常量时应该把它放在==的前面

   如: if4 == x)由于常量不能被赋值或改变所以可以使程序更健壮。

6

  DestroryWindow()只是销毁窗口并发送WM_QUIT消息但程序任再运行

  PostQuitMessage()是结束整个程序

7GetMessage()

  获得WM_QUIT 返回 0

  获得非WM_QUIT 返回非0

8: 全局对象再执行 WinMain()函数之前就分配内存

9:一般情况下 this 指针是指向子类的

10 CDocument 主要处理的是数据本省

     Cview主要处理的是数据的显示和修改

11MFC 的窗口中含有HWND 成员,但他们的生命周期不一样

12CView 类中可以响应消息但CMainFram则不可,因为CView 总在 窗口的前面

13 引用和指针的区别

  1)引用 初始化

   Int a = 10

Int c = 11

   Int& b = a (必须再定义是就初始化int& b b=a是错误的)

   b = c (只是把c的值赋给b 但是 b任然是a 的引用)

二 :MFC 的消息映射

1: 一般情况下 CView 和相关窗口关联(CView对象的指针与该窗口句柄一一对应从而构成了C++对应表)

2:窗口获得消息----》查找C++对应表(获得对象指针)----》把对象指针传给程序框架窗口类基类-》调用---WinPro函数(是个虚函数由子类实现)

三:

1:若建立的DC 与 客户区关联则只能在客户区中绘制

    若。。。。。。框架窗口。。。。。整个框架(包括菜单)。。。

2:构造GDI对象―――》选入DC中(SelectObject()),在绘制后一般把先前选的GDI对象选入DC以便恢复该对象的先前状态

 Cpen pen;

  Cpen* pOldPen;

  pOledPen = pDC->SelectObject(&pen);

  。。。。。绘制。。。。。

  pDC->SelectObject(pOldPen);

3:设备描述表默认是白色画刷

4:静态成员变量或函数,在类加载时就分配空间可以通过类名::成员函数/成员变量来访问,但非静态函数或变量只属于特定的对象,必须产生对象后才能访问,同时,静态成员函数中不能调用非静态成员,只能访问静态成员。

5:内存模型在函数调用中的应用

6:如果希望输入的图形或文字始终能显示,就再WM_PAINT对应处理函数OnDraw()中处理。

 

原创粉丝点击