//--------------------------- //------本程序主要是在对话框中增加状态栏,自己绘制,主要有开始就可以显示数据 //------还可以当移动到一个控件上面,也可以在状态栏中显示数据,变化 //---------使用button 可以在程序中动态改变状态栏的中的信息 //------------本陈不都写在---- ****Dlg.cpp 文件里面,不需要其他的 //---------2005年1月6日----9:49:00----made in haerbin of china //-----------------刘莉莉 or liulili eMail: [email protected] //----------------------------------------------------------------------------------------- //----------------------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 
|