来个牛人!!!请教个向工程中添加资源的问题

gaochizhen33 2011-09-19 06:41:07
用VS2003进行多文档开发时,新打开的小窗口的标题会拼接在主窗口标题后面。若使软件标题从配置文件读取,不添加进资源中,新建子窗口的时候CreateNewChild调用工程资源,因为没有将软件标题写进资源里,主窗口标题会直接变成子窗口标题,这个问题怎么解决的?
...全文
172 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaochizhen33 2011-09-22
  • 打赏
  • 举报
回复

没人了。。。。
gaochizhen33 2011-09-21
  • 打赏
  • 举报
回复
潜藏的牛人呢
架构师Wu老七 2011-09-20
  • 打赏
  • 举报
回复
用一个全局的变量,打开一次读取一次。当然用文件(如配置文件)保存也是一样的道理..
gaochizhen33 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chinatcp 的回复:]
这个没弄过,建议参考如下文章

http://hi.baidu.com/neutblue/blog/item/6fe77723f3ac61a34723e884.html
[/Quote]
他这个不是从配置文件中读取标题名。。也是直接添加进了工程资源里边吧?
罗平 2011-09-20
  • 打赏
  • 举报
回复
这个没弄过,建议参考如下文章

http://hi.baidu.com/neutblue/blog/item/6fe77723f3ac61a34723e884.html
gaochizhen33 2011-09-20
  • 打赏
  • 举报
回复
就是希望工程能够从配置文件读取软件标题,而不是添加进工程资源中,而且必须保证在打开子窗口的情况下,软件标题正确。
gaochizhen33 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 chinatcp 的回复:]
第二种方法:

具体改变方法如下:

改变CSDIMainFrame的成员函数PreCreateWindow()为:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
m_strTitle = " 我的标题 ";
return CFrameWnd::PreCreateWindow(cs);
}

……
[/Quote]
这种方法试过 不过我在工程汇中没找到主窗口的PreCreateWindow函数,在自己练习用的小工程中这种方法确实管用,不过在大工程中主窗口创建好像使用其他方法。在子窗口创建中用到了该函数,不过我添加的过程中,提示m_strTitle未声明。
在MDI工程中,标题、图标、快捷键、工具栏都是绑定在一个资源ID下的,我在想能不能通过读取配置文件,将标题、图标等资源绑定在该ID下呢?
罗平 2011-09-20
  • 打赏
  • 举报
回复
第二种方法:

具体改变方法如下:

改变CSDIMainFrame的成员函数PreCreateWindow()为:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
m_strTitle = " 我的标题 ";
return CFrameWnd::PreCreateWindow(cs);
}

这种有试过吗?不用资源,直接用字符串。
gaochizhen33 2011-09-20
  • 打赏
  • 举报
回复
来个牛人
gaochizhen33 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 alfacuton 的回复:]
用一个全局的变量,打开一次读取一次。当然用文件(如配置文件)保存也是一样的道理..
[/Quote]
但是从配置文件读取的时候,如果打开子窗口,主窗口标题也会修改。底层文件会从工程资源中读取IDR_MAINFRAME 这个资源ID号下捆绑的字符串、图标、快捷方式等,如果从配置文件读取标题的话,这个时候在这个资源ID号下面就不会得到字符串,导致主窗口标题为空。
MFCxueyuan 2011-09-19
  • 打赏
  • 举报
回复
没弄过 没见过 没想过

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧