2001年08月
微软知识库文章
Q172763 信息:在ActiveX 中访问对象模型
说明了如何在控件中获得所在窗口的IWebBrowser2的引用。但是,开发者实际上经常需要的是饱含框架集的顶层IWebBrowser2的引用。例如,当你在网页载入之前调用statusText() 命令设置状态栏的值时可以用到。因为这个属性对WebBrowser控件无效,所以调用所在框架的IWebBrowser2的函数会产生错误。阅读全文>
发表于 @ 2001年08月28日 23:56:00|评论(loading...)|编辑
我如何写一个像Microsoft® Encarta®、 Bookshelf®、和 MoneyHow那样绘制有纹理的背景的应用程序?我试过处理WM_ ERASEBKGND但是我不能使它工作。阅读全文>
发表于 @ 2001年08月12日 04:12:00|评论(loading...)|编辑
列表现在有一个叫做虚列表的方法,允许包含大量的列表项。除了你加上的LVS_OWNERDATA风格之外,控件和其他列表控件的创建是一样的。
在创建之后,你通过向控件发送LVM_SETITEMCOUNT消息,告诉它里面有多少项。这时你在告诉它控件中看起来有多少项,但是没有真正插入任何项目。这个参数有一个整型的wParam参数,是它将包含的列表项的数目。lParam是0或者一些标志的组合,指定显示的选项: LVSICF_NOINVALIDATEALL 的意思是列表控件不被重画,除非被影响的项当前正在显示;LVSICF_NOSCROLL 的意思是当列表项的数目改变的时候,列表控件不改变滚动条上的滑块的位置。
从这时候开始,任何显示列表项将基于回调机制,作如下工作:为每个显示的列表项控件发送LVN_GETDISPINFO通知;你像为标准列表提供列表项显示信息一样,处理这个通知。这个通知的lParam是一个指向LV_DISPINFO结构的指针。这个结构的mask成员指定了需要的信息。
两个通知是虚列表特有的。第一个,LVN_ODFINDITEM,在控件要查找一个特定的项时被发送阅读全文>
发表于 @ 2001年08月10日 19:57:00|评论(loading...)|编辑
有时候把应用程序的主窗口在任务栏上隐藏是必要的(译者注:例如最小化到系统托盘的程序通常都把自己在任务栏上隐藏)此文章描述了可以完成它的两种方法。阅读全文>
发表于 @ 2001年08月08日 23:31:00|评论(loading...)|编辑
问:我的问题是OnIdle在通常的文档/视图程序中可以工作,但是看起来在基于对话框的程序中不行。我的CApp::InitInstance调用dlg.DoModal,调用一个函数:不调用OnIdle的CWnd::RunModalLoop。我想我应该在WM_ENTERIDLE中做一些后台处理,但是这个消息是发送到对话框的父窗口的。在我的这种情况下,父窗口不存在。请帮忙!阅读全文>
发表于 @ 2001年08月06日 20:56:00|评论(loading...)|编辑
在下拉菜单显示的时候, WM_INITMENUPOPUP消息被先发送以显示菜单项。MFC CFrameWnd::OnInitMenuPopup 函数遍历菜单项并为每个菜单项调用更新命令处理函数(如果有的话).菜单的外观被更新以反映它的状态(启用/禁用,选择/取消选择)
更新用户界面机制在基于对话框的应用程序中不能工作,因为CDialog没有OnInitMenuPopup 处理函数,而使用CWnd's 默认处理函数,该函数没有为菜单项调用更新命令处理函数。
阅读全文>
发表于 @ 2001年08月06日 14:17:00|评论(loading...)|编辑
目的:根据目录内容,建立一个菜单。菜单项为目录中的文件和子目录(以弹出方式显示)。
解决方案:遍历子目录,建立一个文件路径数组。菜单项的ID是数组的索引。当用户单击某个菜单项时,从数组中读取文件路径并执行相应的操作。
阅读全文>
发表于 @ 2001年08月02日 22:58:00|评论(loading...)|编辑
应用程序的主窗口通常要处理许多命令消息。这会使文件变得很大,不容易查找。为明确起见,可以将对象对命令消息的处理抽象出来,做成一个(这里是一个,但是可以按用途分成多个)类。
这种方法适用于有很多命令处理函数的对象,以及共享命令处理函数。
阅读全文>
发表于 @ 2001年08月02日 22:08:00|评论(loading...)|编辑
每个命令处理都可能导致异常,抛出异常通常导致终止当前命令处理。在每个命令处理过程中编写异常处理代码是一个十分繁琐的工作,由于命令是CCmdTarget::OnCmdMsg中处理的,所以可以这个函数中处理所有命令处理过程产生的异常而不用分别编写异常处理函数。
阅读全文>
发表于 @ 2001年08月02日 22:00:00|评论(loading...)|编辑
作者的话:使用DHTMLEdit控件在应用程序中显示HTML是一个学习简单但是不很有效的方法,可以用于浏览器编程入门。阅读全文>
发表于 @ 2001年08月02日 21:45:00|评论(loading...)|编辑