CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

点击某按钮弹出另一个窗体时,如何设置弹出的窗体的标题及其内部控件的标题?

楼主dippstar(求知)2006-03-02 10:39:39 在 VC/MFC / 基础类 提问

有一个窗体XXX,上面有2个按钮(Btn1和Btn2)。  
  按Btn1后,弹出窗体YYY,窗体YYY的标题变为:111,窗体YYY中按钮m_OK的标题变为:aaa。  
  按Btn2后,也弹出窗体YYY,窗体YYY的标题变为:222,窗体YYY中按钮m_OK的标题变为:bbb。  
   
  在窗体XXX中:  
  void   CXXXDlg::OnBtn1()    
  {  
          CYYYDlg   dlg;  
          dlg.SetWindowText("111");  
          dlg.m_OK.SetWindowText("aaa");  
          int   nResponse   =   dlg.DoModal();  
  }  
   
  void   CXXXDlg::OnBtn2()    
  {  
          CYYYDlg   dlg;  
          dlg.SetWindowText("222");  
          dlg.m_OK.SetWindowText("bbb");  
          int   nResponse   =   dlg.DoModal();  
  }  
   
  编译没有问题,但一执行就出错。不知道为什么?请高人指点,谢谢!!!!  
   
  问题点数:100、回复次数:4Top

1 楼laiyiling(陌生人[MVP])回复于 2006-03-02 10:42:21 得分 100

请问怎样通过在一个窗体中操作使另外一个窗体的list   control控件中写入值?http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=203350Top

2 楼dippstar(求知)回复于 2006-03-02 10:59:35 得分 0

谢谢,问题解决了!:)Top

3 楼fisker0303(天塌了,地陷了,小花狗不见了.)回复于 2006-03-02 11:00:36 得分 0

void   CXXXDlg::OnBtn1()    
  {  
          CYYYDlg   dlg;  
          dlg.SetWindowText("111");  
          dlg.m_OK.SetWindowText("aaa");  
          int   nResponse   =   dlg.DoModal();  
  }  
   
  在dlg.DoModal调用之前,窗口还没有建立,  
   
  void   CWnd::SetWindowText(LPCTSTR   lpszString)  
  {  
  ASSERT(::IsWindow(m_hWnd));  
   
  if   (m_pCtrlSite   ==   NULL)  
  ::SetWindowText(m_hWnd,   lpszString);  
  else  
  m_pCtrlSite->SetWindowText(lpszString);  
  }  
   
  而SetWindowText函数需要窗口是已建立好了的,肯定会出错啦。Top

4 楼tufaqing()回复于 2006-03-02 11:09:10 得分 0

这样不行,窗口还没有创建呢你就SetWindowText(),肯定回报错的。解决的办法有一个:  
  在CYYYDlg类添加一个窗口标题成员CString   m_strTitle;然后添加一个函数来初始化该变量(建议用构造函数),然后添加重载CYYYDlg::OnInitDialog(),在函数return   TRUE;前添加SetWindowText(m_strTitle),要改变按钮标题也要在里面改,示例如下(测试成功):  
   
  CYYYDlg::CYYYDlg(   CString   strTitle   )    
  :   CDialog(CYYYDlg::IDD),   m_strTitle(strTitle)  
  {  
  }  
   
  BOOL   CYYYDlg::OnInitDialog()    
  {  
  CDialog::OnInitDialog();  
   
  //   TODO:   Add   extra   initialization   here  
  SetWindowText(m_strTitle);  
  return   TRUE;     //   return   TRUE   unless   you   set   the   focus   to   a   control  
                              //   EXCEPTION:   OCX   Property   Pages   should   return   FALSE  
  }  
   
  void   CXXXDlg::OnBtn1()    
  {  
          CYYYDlg   dlg("111");  
          dlg.DoModal();  
  }Top

相关问题

  • 怎么在弹出窗体中添加刷新主窗体的按钮
  • 怎么样用asp.net(C#)实现点击按钮或图片,弹出小窗体,选择日期控件中某一天,并关闭小窗体,同时在textbox中显示日期时间的效果
  • 遍历窗体控件,如果是按钮控件,就enable=false,怎么写?
  • 用JS写的弹出框,为什么挡不住窗体原来的控件.?
  • ASP.NET中如何点击一个按钮然后弹出一个WEB窗体?
  • 急急急急急,两个form窗体如form1,form2 form1窗体先出现,点击form1的按钮,关闭form1弹出form窗体
  • 窗体的按钮
  • 怎样实现单击一个窗体的按钮之后,其实就触发了弹出窗体上某个按钮的单击呢?
  • 急问如何在弹出的窗口中调用主窗体的控件变量?
  • 在asp.net中用datagrid控件来显示数据,当双击记录行时弹出一个窗体..

关键词

  • 函数
  • 窗体
  • cyyydlg
  • setwindowtext
  • dlg
  • 标题
  • 弹出
  • onbtn
  • 按钮
  • strtitle

得分解答快速导航

  • 帖主:dippstar
  • laiyiling

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo