最简单的可以用的方法:
选项Project | Configuration Properties | C/C++ | Preprocessor | Preprocessor Definitions
添加_CRT_SECURE_NO_DEPRECATE和_SCL_SECURE_NO_DEPRECATE
Activex:
ActiveX是Microsoft为抗衡Sun Microsystems的JAVA技术而提出的,此控件的功能和java applet功能类似。
ActiveX控件等价于以前的OLE控件或OCX。
而它的所谓“比较底层,和底层操作系统的关系比C#这些高级语言要密切很多”的好处一直都没有体会到
正是因为C++比较底层,比较基础,所以它可以开发出很多和语言无关的公用程序块,如dll动态链接库和COM组件,原则上,只要你的Windows的系统,用VC++开发出来的这些公用程序块就能被任何语言调用(如果不用MFC框架,而用ATL框架来编写,甚至还可以脱离Windwos系统,不仅仅实现跨语言,甚至跨平台调用,这个笔者就没有仔细研究了)。
ActiveX这门技术是通过生成“*.ocx”文件来实现的。先来了解下OCX文件,在百度百科上面对OCX是这样解释的
用VC开发的OCX控件 可以在其它语言里面都能调用
--窗口消息
WM_CTLCOLOR WM_DRAWITEM
命令消息
WM_COMMAND lParam用来区分是命令消息还是控件通知消息
控件通知消息
WM_NOTIFY lParam中放的是一个称为NMHDR结构的指针。
NMHDR
{
HWnd hWndFrom ; 相当于原WM_COMMAND传递方式的lParam
UINT idFrom ; 相当于原WM_COMMAND传递方式的wParam(low-order)
UINT code ; 相当于原WM_COMMAND传递方式的Notify Code(wParam"s high-order)
};
ON_NOTIFY( LVN_KEYDOWN, IDC_LIST1, OnKeydownList1 )
void CMessageReflectionDlg::OnKeydownList1(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_KEYDOWN* pLVKey= (LV_KEYDOWN*)pNMHDR;
*pResult = 0;
}
ON_NOTIFY( LVN_KEYDOWN, IDC_LIST1, OnKeydownList1 )
ON_COMMAND(ID_MYCOMMAND, &CMFCListViewDoc::OnMycommand)
ON_COMMAND是菜单和工具栏项处理消息的宏 ON_COMMAND(id,memberFxn)
ON_MESSAGE是处理自定义消息的宏ON_MESSAGE(message,memberFxn)
ON_NOTIFY 是控件向其父窗口发送消息处理的宏ON_NOTIFY( LVN_KEYDOWN, IDC_LIST1, OnKeydownList1 )
ON_CONTROL(wNotifyCode,id,memberFxn)
Notification Code的命名规律:
列表框: LBN_*****
组合框: CBN_****
Tab框: TBN_****
按钮: BN_*****
Edit : EN_*****
重叠窗口(Overlapped),弹出窗口(Popup),子窗口(Child)