cig*_*man 6 mfc-feature-pack visual-studio-2008 visual-c++
如何在MFC功能部件包中强制刷新CDockablePane的标题?我正在使用选项卡式visual studio样式示例,我想更改选项卡的标题.
这些似乎在某处缓存,因为当我从默认值更改时,它会使用应用程序在之前运行时使用的内容.我在注册表中找不到与此相关的任何内容.
我正在修改字符串表IDS_FILE_VIEW和IDS_CLASS_VIEW以设置新标题.我已经步入CDockablePane :: CreateEx方法,lpszCaption参数确实包含新标题,但旧标题仍在使用中.
在隐藏窗格并再次显示之前,似乎不会加载新标题.这应该是一个暗示,但我无法弄清楚.
为什么它不会只使用我传递给CreateEx的标题???
简而言之,这是MFC功能包中的一个错误 - 实际上是在BCG软件库中.错误是您无法动态更改这些标题.他们的回答是"你为什么要那样做?"
可停靠窗格中选项卡式窗格的标题存储在注册表中.如果已在注册表中存在标题,则不会使用创建时使用的标题.
因此,第一次运行应用程序时,它将使用字符串表中的标题.之后,它使用注册表中的标题.
使用应用程序向导创建的设置,注册表设置位于:
HKEY_CURRENT_USER\Software\Local AppWizard-Generated Applications\MyApp\Workspace\DockingManager-128\DockingPaneAndPaneDividers
Run Code Online (Sandbox Code Playgroud)
存储在此密钥中的值基本上是一个二进制文件,它在对接管理器启动时被序列化到窗格中.内容未记录,但您可以在afxdockablepane.cpp中查看代码正在执行的操作.
我希望这可以帮助遇到此问题的其他人.
| 归档时间: |
|
| 查看次数: |
3626 次 |
| 最近记录: |