MFC Navigate2是做什么的
来源:互联网 发布:级配碎石筛分算法 编辑:程序博客网 时间:2024/04/27 15:45
对于MFC的类,源码在C:\Program Files\Microsoft Visual Studio\VC98\MFC\路径下,你要查看的OnBeforNavigate2是CHtmlView的一个虚函数,它的定义在AFXHTML.H,和VIEWHTML.CPP中,你在上面的路径下搜索这两个文件就可以了。
void
CHtmlView::BeforeNavigate2(LPDISPATCH
/* pDisp */, VARIANT* URL,
VARIANT* Flags, VARIANT* TargetFrameName,
VARIANT* PostData, VARIANT* Headers, BOOL* Cancel)
{
ASSERT(V_VT(URL) == VT_BSTR);
ASSERT(V_VT(TargetFrameName) == VT_BSTR);
ASSERT(V_VT(PostData) == (VT_VARIANT | VT_BYREF));
ASSERT(V_VT(Headers) == VT_BSTR);
ASSERT(Cancel != NULL);
USES_CONVERSION;
VARIANT* vtPostedData = V_VARIANTREF(PostData);
CByteArray array;
if (V_VT(vtPostedData) & VT_ARRAY)
{
// must be a vector of bytes
ASSERT(vtPostedData->parray->cDims == 1 && vtPostedData->parray->cbElements == 1);
vtPostedData->vt |= VT_UI1;
COleSafeArray safe(vtPostedData);
DWORD dwSize = safe.GetOneDimSize();
LPVOID pVoid;
safe.AccessData(&pVoid);
array.SetSize(dwSize);
LPBYTE lpByte = array.GetData();
memcpy(lpByte, pVoid, dwSize);
safe.UnaccessData();
}
// make real parameters out of the notification
CString strTargetFrameName(V_BSTR(TargetFrameName));
CString strURL = V_BSTR(URL);
CString strHeaders = V_BSTR(Headers);
DWORD nFlags = V_I4(Flags);
// notify the user's class
OnBeforeNavigate2(strURL, nFlags, strTargetFrameName,
array, strHeaders, Cancel);
}
查看源码,得知是CHtmlView的BeforeNavigate2调用了OnBeforeNavigate2,在查看BeforeNavigate2的引用,
ON_EVENT(CHtmlView, AFX_IDW_PANE_FIRST, 250 /* BeforeNavigate2 */
, BeforeNavigate2, VTS_DISPATCH VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PBOOL)
得知该函数为一个事件响应。
有了源码,就没有秘密,更深的可以自己去挖掘了
0 0
- MFC Navigate2是做什么的
- 麦当劳是做什么的?
- petshop是做什么的
- csdn是做什么的?
- Serializable是做什么的?
- lipo 是做什么的
- 程序员是做什么的
- SharePoint 是做什么的?
- Xen是做什么的?
- spring是做什么的
- java是做什么的
- assert是做什么的
- Onsubmit是做什么的?
- TRANSFORM_TEX是做什么的
- vuex是做什么的
- httphandler是做什么的?(转)
- spring是用来做什么的
- 概要设计是做什么的?
- ActiveAndroid 源码阅读笔记 (2)
- spring 邮件发送
- 操作系统网关的设置不会影响到11.2 RAC
- (微博实习)tomcat 启动
- centos 上假设svnserve
- MFC Navigate2是做什么的
- Struts1.x系列教程(23):使用Tiles模板进行布局
- Linux各文件的作用
- jstl标签详解
- kafka单机安装
- 含蓄的情书
- 数组中是否有重复的数字
- fundamental of D3: Bind Data and element Selection
- 关于程序执行、内存资源的理解