vs 2008学习 c++(6)

1.Ctrl+Shift+F就类似于eclipse的全站搜索

2.查找函数的定义,选中函数,点击右键go to definition
F12
转到变量、对象或函数定义。

3.F9
切换断点


4.DDX_Control这个函数是如何动态加载?

DDX_Control(pDX, IDC_STATIC_BUG, m_bug)这个函数是系统自带的
将变量和空间联系起来


5.LoadIcon(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(ID_ICON));
是为HICON对象设置图片

6.LRESULT   Type   used   for   return   value   of   window   procedures
windows用于程序的返回值
在windef.h中的宏定义:
typedef   long   LONG;
typedef   LONG   LRESULT;
它实际上就是long了吧!
用在函数前仅表示函数返回值的类型而已!
请注意函数定义和函数原型的匹配.
这样做的目的无非是在不同的应用场合使用不同的写法以增进程序的可读性,及兼容函数原形


7.应用程序框架产生的消息映射函数
例如:afx_msg void OnBnClickedButton1(); 其中 afx_msg为消息标志,它向系统声明:有消息映射到函数实现体;而在map宏定义中,就有具体消息和此函数的映射定义(可以是自定义,也可以是系统自动完成的)
afx是 application framework
如定义一个Edit的Change处理函数:
一、在类的头文件(*.h)中增加 :
  //{{AFX_MSG(CDialogDemo)  
  afx_msg  void OnChangeEdit1();
  //{{AFX_MSG  
二、在类的实现文件(*.cpp)中增加:
 
1.消息定义( ON_EN_CHANGE):
BEGIN_MESSAGE_MAP(CDialogDemo, CDialog)
//{{AFX_MSG_MAP()  
ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1)
//}}AFX_MSG_MAP  
END_MESSAGE_MAP()  
2.执行函数:
void CDialogDemo::OnChangeEdit1()
{
// TODO: Add your control notification handler code here
……
}  

在afxwin.h中afx_msg的解释: 
  #ifndef   afx_msg 
  #define   afx_msg                   //   intentional   placeholder 
  #endif 
    没什么意思.只是定义了这个符号而已.   这个对编译器来说,相当于什么都没有,对于人来说,我们可以看到这样的符号.   对于类向导来说.这个符号才是有意义的.它是一个消息处理函数的前缀.   类向导生成的消息函数,分发函数,事件响应函数都以这个为前缀.   如果去掉了,向导将不能识别


你可能感兴趣的:(2008)