QQ登录

只需一步,快速开始

上位机MFC在状态栏添加控件

[ 复制链接 ]

上位机MFC在状态栏添加控件

上位机MFC在状态栏添加控件

例如效果如上图。
通过工具条上的按钮,可以在状态栏上添加编辑框或隐藏它。
编辑框内输入内容也会显示在视窗内。
编程框为自己编写的集成类
class CMyEdit : public CEdit
通过调用此类的成员函数create可以创建与显示编辑框。

  1. BOOL CMyEdit::Create(CStatusBar * parent, UINT id, DWORD style)
  2. {
  3.      CRect r;
  4.          int i = parent->CommandToIndex(id);
  5.      parent->GetItemRect(i, &r);
  6.      parent->SetPaneText(i, "");

  7.      // If the pane was not visible, GetItemRect has returned a
  8.      // (0, 0, 0, 0) rectangle. Attempting to create the control
  9.      // using this rectangle creates it, possibly of zero size,
  10.      // at the left of the status bar. We correct this by
  11.      // forcing it to be off the visible right end of the status
  12.      // bar. If the programmer properly handles the parent frame's
  13.      // OnSize method, when the control becomes visible it will
  14.      // move to the correct location.
  15.      if(r.IsRectEmpty())
  16.         { /* offscreen */
  17.          CRect r1;
  18.          parent->GetWindowRect(&r1); // get parent width
  19.          r.left = r1.right + 1;
  20.          r.top =  r1.top;
  21.          r.right = r1.right + 2;
  22.          r.bottom = r1.bottom;
  23.          return FALSE;
  24.         } /* offscreen */
  25.          //////////////////////////////////////////////////////////////
  26.      BOOL result = CEdit::Create(style | WS_CHILD, r, parent, id);
  27.      if(!result)
  28.          return FALSE;

  29.      CFont * f = parent->GetFont();
  30.      SetFont(f);
  31.      return TRUE;
  32. }
复制代码
  1. void CMainFrame::OnAddEdit()
  2. {
  3.   if(c_StatusEdit.m_hWnd == NULL)
  4.     { /* create it */
  5.      c_StatusEdit.Create(&m_wndStatusBar, ID_EDIT, WS_VISIBLE | WS_BORDER);
  6.      
  7.     } /* create it */
  8. else
  9.     { /* destroy it */
  10.      c_StatusEdit.DestroyWindow();
  11.      
  12.     } /* destroy it */       
  13. }
复制代码
创建编辑框时传递的ID为ID_EDIT,可以关联此ID的消息函数
        ON_EN_CHANGE(ID_EDIT, OnChangeEdit)
在编辑框内容发生变化时,就会调用函数OnChangeEdit。
  1. void CMainFrame::OnChangeEdit()
  2. {
  3.      CString s;
  4.      c_StatusEdit.GetWindowText(s);
  5.          CMyStatusView * view = (CMyStatusView *)GetActiveView();
  6.      if(view == NULL)
  7.             return;
  8.      view->AddString(s);   
  9. }
复制代码
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:上位机MFC在状态栏添加控件.rar 
文件大小:38.86 KB  售价:1金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我


  

上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例

  

经历1年的编程与录制点击进入查看


  

halcon从自学到接项目视频教程,另外再赠送全网最全资源  

  

欢迎围观我录制的一套halcon自学视频教程(进入)


  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索