VC++技术内幕笔记

原创 2007年09月22日 10:03:00

??1。CWinApp::Run()成员函数。Run函数被隐藏在基类中,他用来负责传递应用程序的消息给相应的窗口,从而维护着应用程序的运转。WinMain在调用 InitInstance之后紧接着调用Run。

2。获取程序主窗口指针。AfxGetApp()->m_pMainWnd

3。CRect有一个成员函数PtInRect用来测试一个点是否落在某个矩形内。只适用于设备坐标系。CRgn的PtInRegion。

4。MM_TWIPS映射模式常用于打印机。一个twip单位等于1/20磅。1磅等于1/72英寸。水晶报表中的PageMargins单位就是twip。

5。CScrollView::OnPrepareDC(),该函数根据传给SetScrollSizes的第一个参数来设置映射模式,并根据当前滚动位置来设置窗口的原点。

6。GetDlgItem()返回CWnd指针因为控件对象并没有调用构造函数,这些指针是临时的,不能存储供以后使用。如果需要把CWnd指针转化成一个控件ID,可以使用CWnd::GetDlgCtrlID()函数。

7。定制通用对话框,如打开文件对话框,从通用对话框类进行派生。详见第四版7.3节。

8。多线程中使用全局变量会有问题,除了加volatile标志以外,还可以使用InterlockedIncrement函数。

9。如果蔡单项没有相应的命令消息控制函数,应用程序框架就会禁用该菜单项,由CFrameWnd的数据成员m_bAutoMenuEnable决定。

10。

BEGIN_MESSAGE_MAP(CPaintDlg, CDialog)
  ON_COMMANDEX(IDM_ZOOM_1,OnZoom)

  ON_COMMANDEX(IDM_ZOOM_2,OnZoom) 
END_MESSAGE_MAP()

OnZoom(UINT nID)

{

    if(nID == IDM_ZOOM_1) {...}

    else {...}

}

其他宏还有ON_COMMAND_RANGE,ON_COMMAND_EX_RANGE,ON_UPDATE_COMMAND_UI_RANGE

11。如果一个exe需要一个资源,搜索顺序为,首先是exe文件,然后是扩展dll,再是mfc dll,如果扩展dll装入一个资源,则搜索顺序为,首先是扩展dll,然后是mfc dll,再是exe,改变搜索序列可以通过:

HINSTANCE hInstResourceClient=AfxGetResourceHandle();

//use dll's instance handle

AfxSetResourceHandle(::GetModuleHandle("mydllname.dll");

CString strRes;

strRes.LoadString(IDS_MYSTRING);

//Restore client's instance handle

AfxSetResourceHandle(hInstResourceClient);

不能用AfxGetInstanceHandle来代替(::GetModuleHandle,在一个扩展dll里,AfxGetInstanceHandle返回的是exe的实例句柄,而不是dll的。

记录看vc++技术内幕 学习mfc时遇到的问题

http://blog.csdn.net/loongsking/article/details/21387255 visual c++.net 技术内幕 第6版 附带的程序如何在vs2013中编译成功...
  • loongsking
  • loongsking
  • 2014年04月05日 21:33
  • 1438

读spring技术内幕--笔记

最近痴迷于看各种源码解析的书,记录一些自己感觉重要的东西,一边之后复习之用,深深感觉书是要看很多遍的,因为每次都会有新的理解。 --开始。 Spring的主要子项目: Spring Framew...
  • yansuoo
  • yansuoo
  • 2016年04月24日 15:34
  • 1297

《VC++技术内幕》读后感

看的是第四版的电子书,毕竟又厚又贵,买书不划算,而且这版翻译的也很好,记录下我的一点读书心得。第一章:对windows的消息处理模式,GDI,DLL等有个基本了解,价值不大,算入门级别吧。第二章:...
  • phinecos
  • phinecos
  • 2007年11月19日 22:53
  • 1149

《深入理解Linux网络技术内幕》阅读笔记(十)

中断处理函数会: 1.把帧拷贝到sk_buff数据结构。 2.对一些sk_buff参数做初始化,以便在稍后由上面的网络层使用。 3.更新其他一些该设备私用的参数。 4.为NET_RX_SOFT...
  • u011673554
  • u011673554
  • 2015年10月02日 17:35
  • 1364

《MySQL技术内幕——InnoDB存储引擎》读书笔记(一)——MySQL体系结构和存储引擎

一、定义数据库和数据库实例 数据库 (database): 物理操作系统文件或其他形式文件类型的集合 实例(instance) :  MySQL数据库由后台线程以及一个共享内存区组成,共享内存可以...
  • u011468424
  • u011468424
  • 2016年09月10日 19:31
  • 467

Kafka技术内幕

1 概述 Kafka起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统...
  • u014324077
  • u014324077
  • 2017年10月02日 10:09
  • 454

MySQL技术内幕InnoDB存储引擎学习笔记(第二章)

第二章 InnoDB存储引擎 一、实验环境 宿主机系统:windows7 虚拟机:OracleVMVirtualBox Linux:ubuntukylin-14.04.1-amd64.iso jdk:...
  • lanonola
  • lanonola
  • 2016年07月14日 20:19
  • 1258

深入分析java web技术内幕----读书笔记(六)

session和cookie都是用来保持用户与后端服务器的交互状态。 cookie大小大小受限,并且占带宽。 session不能在多个服务器间共享。 cookie是保存在客户端的一个数据结构 se...
  • a724888
  • a724888
  • 2017年03月19日 11:16
  • 1036

《深入理解Linux网络技术内幕》阅读笔记(二十五)

有时候,发送方生成一个ARPOP_REQUEST是为了通知接收方一些信息,而不是请求信息。这种封包就称为无端ARP,它通常用下面列出的情况中: 1.L2地址发生变化。 2.重复地址探测。 3.虚...
  • u011673554
  • u011673554
  • 2015年10月13日 00:03
  • 635

《深入理解Linux网络技术内幕》阅读笔记(三十)

路由缓存用于减少路由表查找的时间。路由缓存的核心是与协议无关的目的缓存(Protocol Independent Destination Cache DST)。尽管采用策略路由可有效地创建多张路由表,...
  • u011673554
  • u011673554
  • 2015年10月15日 09:50
  • 960
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC++技术内幕笔记
举报原因:
原因补充:

(最多只允许输入30个字)