vc技术内幕笔记

1,当用户改变了窗口尺寸,或者当窗口恢复了先前被遮盖的部分(自动调用ondraw)。或者当应用程序改变了窗口数据时,窗口都需要被重新绘制(用invalidate或invalidaterect)。
2.按照惯例,mfc库中非静态数据成员名字以m打头。
3.一个Csize对象是两个CPoint对象的差,而且我们可以用一个Cpoint对象进行偏移得到Crect对象。
4.要保证设备环境对象能够被适时地删除掉(并且释放掉相应的windows设备环境)。最简单的办法就是
在堆栈中构造对象:CClientDC dc(this);他的洗头函数在函数返回时被自动调用
也可以GetDC,RealeaseDC
5.如果我们需要重新编写OnPaint函数,就需要使用CPaintDC类。
6.CDC类的SelectObject成员函数族在将gdi对象选进设备环境的同时,还返回了指向前一次
被选对象的指针(在这个过程中它实际已被分离出来)。一个简单的方法是在选进自己的gdi对象的同时,将原来的gdi对象也
保存起来,任务完成之后再恢复。
7.DoDataExchange,DDX_(交换)和DDV_(确认)函数都具有双向性。如果调用UpdateData时传给它的参数为false,那么函数将
数据成员中的值传递给对话款控件;反之,如果参数为true,则反过来传送
8.访问控件所对应的窗口对象GetDlgItem函数,可以用它将ID转化成一个CWnd指针
例子:CScrollBar* pSB=(CScrollBar*)GetDlgItem(IDC_LOYAL);需要注意的是,这些指针是临时的
因此不能够被存储供以后使用
如果需要把CWnd指针转化成一个控件ID,则可以使用GetCtrlID函数。
9.每个控件在显示之前会立刻向其父对话框发送WM_CTLCOLOR消息,对话框本身也会发送该消息
如果你在派生类对话框中对这消息映射,就可以设定文本的前景色和背景色,同时还可为控件或
对话框的非文本区选择一个刷子。
10.如果我们只想显示一些文本,我们可以利用对话框编辑器来创建一个具有特殊ID的空的静态控件
,然后再在对话框的成员函数中(如OnInitDialog)调用SetDlgItemText函数。
11.我们既要在控件窗口内绘图,又要防止Windows对它进行重复绘制。我们可以通过利用
Invalidate/UpdateWindow这一调用序列来达到这一效果。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值