请教:关于更改 非DOC/View结构 中ChildFrame标题的问题

hivvyeah 2005-05-01 07:38:01
大家好:我想更改MDI程序中子框架的标题。
在创建新的ChildFrame后用SetWindowText(...),只能维持新的标题一下,如果创建新的子框架,标题又恢复原来的样子了。代码如下:

void CBaseApp::OnFileNew()
{
CMainFrame* pFrame = STATIC_DOWNCAST(CMainFrame, m_pMainWnd);
// 创建新的 MDI 子窗口
CChildFrame* pChildWnd=(CChildFrame*) pFrame->CreateNewChild(
RUNTIME_CLASS(CChildFrame), IDR_CHILDFAME1, m_hMDIMenu, m_hMDIAccel);
pChildWnd->SetWindowText("我的自定义标题");

}

请问各位有什么好方法吗?

另外:
我在 PreCreateWindows(...)里面设置 cs.lpszName="我的自定义标题",好像不行的,为什么?
代码如下:

BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或样式

if( !CMDIChildWnd::PreCreateWindow(cs) )
return FALSE;

HICON hWndIcon = ::LoadIcon(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDR_CHILDFAME1));

cs.lpszName = "我的自定义标题";
cs.dwExStyle &= ~WS_EX_CLIENTEDGE;
cs.dwExStyle |= WS_OVERLAPPEDWINDOW;

cs.lpszClass = AfxRegisterWndClass(0, 0, 0, hWndIcon);



return TRUE;
}


...全文
91 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hivvyeah 2005-05-02
  • 打赏
  • 举报
回复
我看了过去的提问,不知道是不是他们的问题,他们也是在PreCreateWindow(..)内修改cs.lpszName进行修改标题的。
我不知道MSDN文档里的“Points to a null-terminated string that specifies the new window's name.”是否是指标题。我比较模糊,请大家帮忙。
http://community.csdn.net/Expert/topic/3612/3612108.xml?temp=.251156
jerry 2005-05-01
  • 打赏
  • 举报
回复
那是窗口类的名字,不是标题

2,586

社区成员

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

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