对话框标题如何修改?

marshallxu 2012-01-16 07:36:18
我想做一个基于对话框的程序,要求编译生成的程序的对话框的标题等于c:\text.txt文件中的内容。
例:text.txt文件的内容是abcd, 编译生成的对话框程序的标题也是 abcd.
把这个exe程序发布出去(c:\text.txt不发布出去的),标题还是abcd.该怎么做呢?
...全文
1002 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2012-03-12
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
morrist1987 2012-02-03
  • 打赏
  • 举报
回复
神一样的问题!
zhanghaaaa 2012-02-02
  • 打赏
  • 举报
回复
SetWindowText("要修改的内容");
天一亮就跑 2012-02-02
  • 打赏
  • 举报
回复
那文件信息不是有时间的吗?
chunyou128 2012-02-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zgl7903 的回复:]

SetWindowText
[/Quote]
++
jianghandaxue 2012-02-02
  • 打赏
  • 举报
回复
在对话框初始化时,读取这个文件,并读取文件里面的内容,然后SetWindowText("文件的内容"); 肯定要读取你的文件啊,你发布EXE时,程序读取的就是你的text文本里面的内容,但是你的文本文件现在不存在,你说内容从哪来???


你说的情况,只有神才知道怎么做!

就好比你现在站的地方有个很大的湖,你到了另一个地方又想把这个一模一样的大海搬到你现在站的地方!你说可能吗?
hotpos 2012-02-02
  • 打赏
  • 举报
回复
24楼应该可行

如果你要写脚本,VS项目属性 有个build events。3个事件分别是 编译前、链接前、完成后。
在里面你可以调用一个程序或者写批处理脚本。
marshallxu 2012-02-02
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 qq4478842 的回复:]
引用 26 楼 marshallxu 的回复:

我的真实目的是这样的:
能在话框标题上显示exe文件生成的时间。这样的话,我就能区分哪个exe文件版本比较早,哪个文件版本比较迟。
当然,可以用传统的办法,在OnInitDialog()中加入下面的代码:SetWindowText("2012-02-02 12:30:24");然后去修改这条语句。
但是每次要去修改这条语句实在太麻烦了。
……
[/Quote]

有用啊。用户选择程序升级的时候,可以知道升级成功了没。如果升级成功了,标题不一样了
qq4478842 2012-02-02
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 marshallxu 的回复:]

我的真实目的是这样的:
能在话框标题上显示exe文件生成的时间。这样的话,我就能区分哪个exe文件版本比较早,哪个文件版本比较迟。
当然,可以用传统的办法,在OnInitDialog()中加入下面的代码:SetWindowText("2012-02-02 12:30:24");然后去修改这条语句。
但是每次要去修改这条语句实在太麻烦了。
所以才想到:有没有这样的语句,只在编译链接的时候起……
[/Quote]

晕·你那么弄也没方便到哪去·还得打开exe文件才知道·
marshallxu 2012-02-02
  • 打赏
  • 举报
回复
我的真实目的是这样的:
能在话框标题上显示exe文件生成的时间。这样的话,我就能区分哪个exe文件版本比较早,哪个文件版本比较迟。
当然,可以用传统的办法,在OnInitDialog()中加入下面的代码:SetWindowText("2012-02-02 12:30:24");然后去修改这条语句。
但是每次要去修改这条语句实在太麻烦了。
所以才想到:有没有这样的语句,只在编译链接的时候起作用,在运行的时候不起作用。
Icer 2012-01-25
  • 打赏
  • 举报
回复
非常无厘头的需求,既然只在编译时候用,编译时修改源码好了嘛。。。何必这么麻烦
如果你你要是非这么做,就在txt内容里加上前后引号
"abcd"或者更好点_T("abcd")

然后设置标题代码:
SetWindowText(
#include "d:\\1.txt"
);
就可以了,一定要换行!!!
yinwjvip_2012 2012-01-19
  • 打赏
  • 举报
回复
相应的文件要放到工程目录下才可以
正在无聊中 2012-01-19
  • 打赏
  • 举报
回复

BOOL C***Dlg::OnInitDialog()
{
//前面代码省略
CFile file(_T("text.txt"),CFile::modeRead);
CString str;
file.Read(str);
file.Close();
SetWindowText(str);
return TRUE;
}
yinwjvip_2012 2012-01-19
  • 打赏
  • 举报
回复
Kaile说的对,只有在运行时才可以
Kaile 2012-01-19
  • 打赏
  • 举报
回复
在编译生成可执性文件的时候,才读取 c:\text.txt里面的内容,这个我不会。


编译时如何执行动态内容? 只能运行时改变标题,而不是编译时确定。
marshallxu 2012-01-19
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 zgszft 的回复:]
这样,你可以每次启动时先读注册表,如果发现没有,就是第一次,那么读取txt然后保存到注册表,如果有的话那就不会变了。当然ini、xml等也能代替注册表
[/Quote]
我的软件要分发出去的。

zgszft 2012-01-18
  • 打赏
  • 举报
回复
这样,你可以每次启动时先读注册表,如果发现没有,就是第一次,那么读取txt然后保存到注册表,如果有的话那就不会变了。当然ini、xml等也能代替注册表
marshallxu 2012-01-18
  • 打赏
  • 举报
回复
我想做一个基于对话框的程序,要求编译生成的程序的对话框的标题等于c:\text.txt文件中的内容。
例:text.txt文件的内容是abcd, 编译生成的对话框程序的标题也是 abcd.
把这个exe程序发布出去(c:\text.txt不发布出去的),标题还是abcd.该怎么做呢?

实际上,我只要求在编译生成可执性文件的时候,才读取 c:\text.txt里面的内容。这个如何实现?

读文件我会,改变窗口标题setwindowtext 我也会。
在编译生成可执性文件的时候,才读取 c:\text.txt里面的内容,这个我不会。
chunyou128 2012-01-18
  • 打赏
  • 举报
回复
SetWindowText
hotpos 2012-01-17
  • 打赏
  • 举报
回复
你可以编译完了再用资源修改程序改,
不一定非要编译时完成。

加载更多回复(12)

15,979

社区成员

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

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