2004年01月
集成浏览器控件是快速软件开发的强有力的工具。通过成为浏览器的宿主,你可以利用便于使用的Dynamic HTML (DHTML), HTML, 和Extensible Markup Language (XML)来显示信息和开发一个用户界面。但是,浏览器控件的行为可能不确切符合你的需求。例如,默认的状态允许用户通过快捷菜单的查看源代码选项查看一个显示的页面的源代码,你可能需要禁用或者干脆去掉这个选项。你可能更进一步,需要用你自己的快捷菜单替换默认的快捷菜单。阅读全文>
发表于 @ 2004年01月13日 10:08:00|评论(loading...)|编辑
自动完成功能在浏览器控件中默认是禁用的(但是没有任何文档提到这一点……),但是可以通过实现IDocHostUIHandler,在GetHostInfo方法中在填充DOCHOSTUIINFO结构的dwFlags成员时设置DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE标识位来启用。
关于如何实现IDocHostUIHandler,可以参考http://www.csdn.net/Develop/article/19/19627.shtm,示例工程在http://www.csdn.net/Develop/article/21/21702.shtm中
我以前的努力可以在http://blog.joycode.com/jiangsheng/posts/3593.aspx中看到,是企图调用IShellUIHelper::AutoCompleteAttatch,但是这个未公开方法并无作用。
阅读全文>
发表于 @ 2004年01月09日 14:45:00|评论(loading...)|编辑
条件查找映射
MFC中大量使用了BEGIN_XXX_MAP这样的宏,以及映射进行查找优化,例如消息映射,OLE命令映射,以及接口等等。每个映射包含一个指向基类的映射的指针。这样,当一个类需要根据一定的条件查找一个对象时,它会查找本类对象,如果没有找到,那么会查找基类,直到根基类。这类查找包含Windows消息,命令,事件和OLE命令的分发,和对象实现的接口的查询等等。
句柄映射
MFC在把句柄封装成对象方面不遗余力,为了保证同一线程内对象句柄映射是一对一的,创建了各种各样的句柄映射,窗口,GDI对象,菜单诸如此类。为了封装GetDlgItem,SelectObject这样的API返回的临时的句柄,MFC还产生临时的对象句柄映射。句柄映射使得GetParentFrame这样的函数可以实现。
阅读全文>
发表于 @ 2004年01月05日 16:28:00|评论(loading...)|编辑