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++技术内幕』学习笔记(10)

第十篇:模式对话框和通用控件(下)     大家好,雷神由于出差在外,所以笔记今天才写出抱歉。不知道大家有没有做上篇提到的计算器,计算器对雷神来说可是经典的程序,学VB先搞了计算器,学VC也搞了...

vc++技术内幕笔记

  • 2014年06月26日 15:49
  • 134KB
  • 下载

VC++技术内幕的学习笔记

  • 2009年07月21日 16:54
  • 35KB
  • 下载

VC++.NET技术内幕学习一

第五章消息映射 遇到的问题: 一、映射模式。 坐标使用的经验规则: 1、  可以认为CDC的所有成员函数都以逻辑坐标作为其参数。 2、  可以认为CWnd的成员函数都以设备坐标作为其参数。 ...

VC++技术内幕-学习笔记.doc

  • 2011年09月20日 12:57
  • 228KB
  • 下载

VC++技术内幕 学习笔记

  • 2010年05月12日 11:40
  • 151KB
  • 下载

VC++.NET 技术内幕学习三

第十五章、文档与视图的分离 CView::GetDocument();非虚函数。返回的是指向文档的指针。 当MFC产生CView的派生类时,它同时也创建类型安全的GetDocument函数,该函数...

VC++技术内幕学习笔记

  • 2007年09月02日 09:31
  • 50KB
  • 下载

『VC++技术内幕』学习笔记

  • 2011年07月28日 11:48
  • 123KB
  • 下载

vc技术内幕笔记

1,当用户改变了窗口尺寸,或者当窗口恢复了先前被遮盖的部分(自动调用ondraw)。或者当应用程序改变了窗口数据时,窗口都需要被重新绘制(用invalidate或invalidaterect)。 2...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC++技术内幕笔记
举报原因:
原因补充:

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