中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 综合文章
对话框中增加状态栏,并且鼠标在不同位置可以显示不同数据
作者:未知 时间:2005-07-27 21:53 出处:CSDN 责编:chinaitpower
              摘要:对话框中增加状态栏,并且鼠标在不同位置可以显示不同数据

//---------------------------
//------本程序主要是在对话框中增加状态栏,自己绘制,主要有开始就可以显示数据
//------还可以当移动到一个控件上面,也可以在状态栏中显示数据,变化
//---------使用button 可以在程序中动态改变状态栏的中的信息
//------------本陈不都写在---- ****Dlg.cpp 文件里面,不需要其他的
//---------2005年1月6日----9:49:00----made in haerbin of china
//-----------------刘莉莉  or liulili   eMail: liulili995@163.com
//-----------------------------------------------------------------------------------------
//----------------------start---------****Dlg.h file
    public:
 int count;                       //在button 点击以后,使用count传递变量,使得状态栏文字发生变化
 CStatusBar m_status;  //申明两个变量 状态栏
//----------------------end------------****Dlg.h file
//
//
//-----------------------start----------****Dlg.cpp file
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
 //{{AFX_MSG_MAP(CAboutDlg)
  // No message handlers
 //}}AFX_MSG_MAP
END_MESSAGE_MAP()
//-----------my code--------------------------
//----for statusbar 下面的小格格个数----------
static UINT status_id[]=

 //-------设置5个小格格
 ID_SEPARATOR,
 ID_SEPARATOR, //可以多个
 ID_INDICATOR_CAPS, //可以没有
 ID_INDICATOR_NUM,  //
 ID_INDICATOR_SCRL  //
};
//------------------------------------
/////////////////////////////////////////////////////////////////////////////
// CMyDlg dialog
//-----------------------------------
BOOL CMyDlg::OnInitDialog()
{
 CDialog::OnInitDialog();

 // Add "About..." menu item to system menu.
     this->count =0;
 // IDM_ABOUTBOX must be in the system command range.
 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
 ASSERT(IDM_ABOUTBOX < 0xF000);

 CMenu* pSysMenu = GetSystemMenu(FALSE);
 if (pSysMenu != NULL)
 {
  CString strAboutMenu;
  strAboutMenu.LoadString(IDS_ABOUTBOX);
  if (!strAboutMenu.IsEmpty())
  {
   pSysMenu->AppendMenu(MF_SEPARATOR);
   pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  }
 }

 // Set the icon for this dialog.  The framework does this automatically
 //  when the application's main window is not a dialog
 SetIcon(m_hIcon, TRUE);   // Set big icon
 SetIcon(m_hIcon, FALSE);  // Set small icon
 
 // TODO: Add extra initialization here
 //-------------my code----------------------
    //-----------初始化 状态栏 -----------------
 if(!this->m_status.Create(this)||!this->m_status.SetIndicators(status_id,sizeof(status_id)/sizeof(UINT)))
 {
  return -1;
 }
 //-----------设置 状态兰的大小 和显示的文字-----------
 UINT nID;  //控制状态栏里面的小格格
 //-----------设置 小格格的具体信息
 //--------------第一个格格,100,大小,样式
 m_status.SetPaneInfo(0,nID,SBPS_STRETCH,100);
 m_status.SetPaneText(0,"Hello!,welcome");
 //--------------第二个格格,100,大小,样式
 m_status.SetPaneInfo(1,nID,SBPS_STRETCH,100);
 m_status.SetPaneText(1,"A Gril");
 m_status.SetPaneInfo(2,nID,SBPS_STRETCH,100);
 m_status.SetPaneText(2,"This is Chinese");
 m_status.SetPaneInfo(3,nID,SBPS_STRETCH,100);
 m_status.SetPaneText(3,"1000");
 //----------------让这个状态栏最终显示在对话框中-------------
 RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);

 //-------------------------------------------
 return TRUE;  // return TRUE  unless you set the focus to a control
}

//-------------------------------
BOOL CMyDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
 // TODO: Add your message handler code here and/or call default
 //-------------MY CODE---------------------
 //-----------让我的鼠标移动到控件上面,就有相应的提示和变化
 switch(message)
 {
 case WM_MOUSEMOVE:
  {
   if(pWnd!=this)
   {
    switch(pWnd->GetDlgCtrlID())
    {
    case IDC_EDIT1:
     {
      m_status.SetPaneText(0,"编辑框");
      break;
     }
    case IDC_COMBO1:
     {
      {
       m_status.SetPaneText(0,"组合框");
      break;
     }
     }
    case IDC_BUTTON1:  //当鼠标移动到button 按钮上面的时候
     {
      if(this->count ==1)
      {
       m_status.SetPaneText(1,"你好,中国人");  
       break;
      }
     }
    default:
     {
                     m_status.SetPaneText(0,"也没有数据");
      m_status.SetPaneText(1,"现在没有数据");
     break;
     }
    }
   }
  }
 }
 //-------------------------------------------
 return CDialog::OnSetCursor(pWnd, nHitTest, message);
}
//button 控制
void CMyDlg::OnButton1()
{
 this->count =1;
 
}
//-----------------------end----------****Dlg.cpp file


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有