CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  Visual C++ 资源

急问,问题解决,马上给分

楼主gmlan1978()2005-04-02 13:38:18 在 VC/MFC / Visual C++ 资源 提问

1.如何得到一个对话框中的一个按钮相对于该对话框的位置?  
  2.如何将一个按钮移动到另外一个按钮的位置上呢?  
  多谢, 问题点数:50、回复次数:9Top

1 楼surstar(我要写个操作系统出来……)回复于 2005-04-02 13:43:31 得分 5

MoveWindow()Top

2 楼mava(性感小奶牛)回复于 2005-04-02 13:46:04 得分 5

先设定一个CButton   对象对应button   :   m_ctButton  
  然后  
  1.m_ctButton.GetWindowRect();  
  2.m_ctButton.SetWindowPos();Top

3 楼gmlan1978()回复于 2005-04-02 13:51:52 得分 0

其实我的本意是要移动一个CStatic控间到状态栏的第二格中,如何实现吧??Top

4 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-04-02 15:15:44 得分 0

可以直接访问状态栏的第二格的Top

5 楼wangjianddy(~~~~>_<~~~~)回复于 2005-04-02 23:00:03 得分 10

Visual   C++   概念:添加功能        
   
  更新状态栏窗格文本  
  本文解释如何更改出现在   MFC   状态栏窗格中的文本。状态栏(CStatusBar   类的一个窗口对象)包含几个“窗格”。每个窗格都是状态栏中可用来显示信息的矩形区域。例如,很多应用程序在最右边的窗格显示   CAPS   LOCK、NUM   LOCK   和其他键的状态。应用程序还经常在最左边的窗格(窗格   0)显示信息文本,此窗格有时称为“消息窗格”。例如,默认   MFC   状态栏使用消息窗格显示一个字符串,来解释当前选定的菜单项或工具栏按钮。状态栏中的图显示了由“应用程序向导”创建的   MFC   应用程序中的状态栏。  
   
  默认情况下,MFC   在创建窗格时不启用   CStatusBar   窗格。若要激活一个窗格,必须对状态栏上的每一个窗格使用   ON_UPDATE_COMMAND_UI   宏并更新窗格。因为窗格不发送   WM_COMMAND   消息(与工具栏按钮不同),所以必须手动键入代码。  
   
  例如,一个窗格以   ID_INDICATOR_PAGE   作为其命令标识符,并且包含文档的当前页码。以下过程描述如何在状态栏中新建一个窗格。  
   
  新建窗格    
   
  定义窗格的命令   ID。    
  在“视图”菜单上单击“资源视图”。右击项目资源并单击“资源符号”。在“资源符号”对话框中,单击“新建”。键入一个命令   ID   名称:例如,ID_INDICATOR_PAGE。为   ID   指定值,或接受“资源符号”对话框建议的值。例如,对于   ID_INDICATOR_PAGE,接受默认值。关闭“资源符号”对话框。    
   
  定义窗格中要显示的默认字符串。    
  打开“资源视图”后,在为应用程序列出资源类型的窗口中双击“String   Table”。打开“字符串表”编辑器后,从“插入”菜单中选择“新建字符串”。在“字符串属性”窗口中,选择窗格的命令   ID(例如:ID_INDICATOR_PAGE)并键入默认字符串值,如“Page       ”。关闭字符串编辑器。(需要一个默认字符串以避免编译器错误。)    
   
  将该窗格添加到   indicators   数组。    
  在文件   MAINFRM.CPP   中定位   indicators   数组。该数组按从左向右的顺序为状态栏的所有指示器列出了命令   ID。在数组中的适当位置,输入窗格的命令   ID,如以下为   ID_INDICATOR_PAGE   所显示的:    
   
  static   UINT   BASED_CODE   indicators[]   =  
  {  
          ID_SEPARATOR,                       //   status   line   indicator  
          ID_INDICATOR_CAPS,  
          ID_INDICATOR_NUM,  
          ID_INDICATOR_SCRL,  
          ID_INDICATOR_PAGE,  
  };  
  在窗格中显示文本的推荐方法是:在窗格的更新处理函数中调用   CCmdUI   类的   SetText   成员函数。例如,您也许想建立一个包含当前页码的整型变量   m_nPage,并使用   SetText   将窗格的文本设置为该页码的字符串形式。  
   
  注意       建议使用   SetText   方法。可以通过调用   CStatusBar   成员函数   SetPaneText   在稍微低一些的级别执行该任务。即使如此,仍旧需要一个更新处理函数。如果窗格没有这样一个处理函数,MFC   会自动禁用该窗格并清除它的内容。  
  以下过程显示如何使用更新处理函数在窗格中显示文本。  
   
  创建窗格显示文本    
   
  为命令添加命令更新处理函数。    
  手动添加处理函数的原型,如在此为   ID_INDICATOR_PAGE   所显示的(在   MAINFRM.H   中):    
   
  afx_msg   void   OnUpdatePage(CCmdUI   *pCmdUI);  
  在适当的   .CPP   文件中,添加处理函数的定义,如在此为   ID_INDICATOR_PAGE   所显示的(在   MAINFRM.CPP   中):    
   
  void   CMainFrame::OnUpdatePage(CCmdUI   *pCmdUI)  
  {  
          pCmdUI->Enable();    
  }  
  在适当的消息映射中,添加   ON_UPDATE_COMMAND_UI   宏,如在此为   ID_INDICATOR_PAGE   所显示的(在   MAINFRM.CPP   中):    
   
  ON_UPDATE_COMMAND_UI(ID_INDICATOR_PAGE,   OnUpdatePage)  
  在处理函数中添加代码以显示文本。    
  对于   ID_INDICATOR_PAGE,从上述步骤   1   中展开   OnUpdatePage   处理函数,添加最后三行:    
   
  void   CMainFrame::OnUpdatePage(CCmdUI   *pCmdUI)    
  {  
          pCmdUI->Enable();    
          CString   strPage;  
          strPage.Format(   "Page   %d",   m_nPage   );    
          pCmdUI->SetText(   strPage   );    
  }  
  定义了成员变量   m_nPage(属于   CMainFrame   类)的值后,该技术使页码在空闲处理过程中按应用程序更新其他指示器的相同方式出现在窗格中。如果   m_nPage   更改,则显示在下一个空闲循环过程中更改。  
   
  Top

6 楼Mackz(在相互)回复于 2005-04-03 22:11:33 得分 0

楼上的也和我一样贴MSDN了啊。其实很多东西查查MSDN很简单的,我经常帮有些同志查,唉。Top

7 楼dfyang()回复于 2005-04-03 23:27:11 得分 30

CRect   rect1,rect2;  
  GetWindowRect(&rect1);  
  ((CButton*)GetDlgItem(ID_???)->GetWindowRect(&rect2));  
  比较一下就可以得到相对位置了,移动按钮用MoveWindow  
  rect1.top=?;rect1.left=?;....  
  ((CButton*)GetDlgItem(ID_???)->MoveWindow(&rect1);  
  Top

8 楼alexpdl(别处)回复于 2005-04-04 10:19:35 得分 0

楼上对Top

相关问题

  • 急急!!马上给分!
  • 急急,马上给分
  • visibility='hidden'? 急!马上给分!
  • 急,马上给高分!!!100
  • 急需IBM VisualAge for C++!!马上给分!
  • 紧急求援,马上给分!!
  • 有急事要问,马上给分!!!!
  • 紧急求救啊!!!!马上给分!!!
  • 我急了,解决马上给分
  • 紧急救助(马上给分)

关键词

  • 函数
  • 文本
  • 应用程序
  • 页码
  • 视图
  • 窗格
  • 状态栏
  • 字符串
  • onupdatepage
  • 格

得分解答快速导航

  • 帖主:gmlan1978
  • surstar
  • mava
  • wangjianddy
  • dfyang

相关链接

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

广告也精彩

反馈

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