VC++ MFC编程学习笔记(3)

VC++MFC基于CFormView类的单文档基本使用:

1程序运行窗口标题图标的改变:

在资源视图中的Icon文件夹中导入图表资源修改图标ID为:IDR_MAINFRAME

重新运行后程序图表已经改变为你加载的那个图标。

2修改程序窗口标题名称有两处可修改:

一处是在

// SingleViewTestDoc.cpp : implementationof the CSingleViewTestDoc class

//

BOOL CSingleViewTestDoc::OnNewDocument()

{

         if(!CDocument::OnNewDocument())

                   returnFALSE;

         //TODO: add reinitialization code here

         //(SDI documents will reuse this document)

         SetTitle("XXXXXX");   //设置标题

         returnTRUE;

}

另外一处是在资源视图的String Table文件夹中,双击进去修改ID为IDR_MAINFRAME的Caption(标题)

 

3菜单栏:

菜单栏和工具栏在资源视图中的Menu和 Toolbar中可以看到,是用的同一个ID。其对应的操作也是对于同一个ID。(就像快捷方式的功能一样)接着在菜单栏中选中某一个选项事件,右击选择类向导,取消。(或者自己手动添加函数映射)在Object IDs选择对应的选项ID,在Messages中选择Command,在类中选择View。增加函数并编辑程序代码实现相应的功能。

m_xxxdlg.Create(IDD_XXX,&m_tabcontrl);     //在容器中创建窗口对象

m_xxxdlg.ChangState(&m_xBool,&m_xxBool,&m_xxxBool,&m_xxxxBool,&m_xxxxxBool,&m_xxxxxxBool);               //改变状态

m_tabcontrl.SetCurSel(2);       //设置光标定位

m_xxxdlg.SetWindowPos(NULL,10,30,m_tabrect.right-20,m_tabrect.bottom-40,SWP_SHOWWINDOW );  //设置对话框窗口定位并显示

m_xBool = FALSE;         //bool变量,对于菜单栏和工具栏的使能按钮触发

m_xxBool=FALSE;

m_xxxBool=FALSE;

m_xxxxBool=FALSE;

m_xxxxxBool=FALSE;

m_xxxxxxBool=FALSE;

//。。。。。。

//利用者两个函数来处理菜单栏和工具栏的使能事件

ON_UPDATE_COMMAND_UI(IDI_XXX, OnUpdateXXX)                             //实时刷新

ON_COMMAND(IDI_XXX, OnXXX)

void CXXXView::OnUpdateXXX(CCmdUI* pCmdUI)

{

         //TODO: Add your command update UI handler code here

         pCmdUI->Enable(m_XXXBool);

}

 

4工具栏显示:

鼠标悬停处文字提示:在工具栏中双击某一个位图,在Prompt\n添加提示文字。

// MainFrm.h : interface of the CMainFrameclass

//

public:

         CStatusBar  m_wndStatusBar;      //状态条

protected: // control bar embedded members

         CToolBar    m_wndToolBar;                     //工具条

         CImageList  m_ilTB;                           //图像列表

 

// MainFrm.cpp : implementation of theCMainFrame class

//

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

         if(CFrameWnd::OnCreate(lpCreateStruct) == -1)

                   return-1;

        

         if(!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP

                   |CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||

                   !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))

         {

                   TRACE0("Failedto create toolbar\n");

                   return-1;      // fail to create

         }

         if(!m_wndStatusBar.Create(this) ||

                   !m_wndStatusBar.SetIndicators(indicators,

                     sizeof(indicators)/sizeof(UINT)))

         {

                   TRACE0("Failedto create status bar\n");

                   return-1;      // fail to create

         }

         //新添加的程序代码

         m_wndStatusBar.SetPaneInfo(0,0,0,200);            //状态条的设置

         m_wndStatusBar.SetPaneInfo(1,0,0,200);

         m_wndStatusBar.SetPaneInfo(2,0,SBPS_STRETCH,200);

         m_wndStatusBar.SetPaneInfo(3,0,0,200);

        

m_ilTB.Create(48, 48, TRUE | ILC_COLOR8,9, 0);      //图像列表的创建

         HICONhIcon = NULL;

         hIcon =(HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_XXX),

                   IMAGE_ICON, 48,48, 0);

         m_ilTB.Add(hIcon);

         hIcon= (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_XXX),

                   IMAGE_ICON,48, 48, 0);

         m_ilTB.Add(hIcon);

         hIcon= (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_XXX),

                   IMAGE_ICON,48, 48, 0);

         m_ilTB.Add(hIcon);

         hIcon= (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_XXX),

                   IMAGE_ICON,48, 48, 0);

         m_ilTB.Add(hIcon);

         hIcon= (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_XXX),

                   IMAGE_ICON,48, 48, 0);

         m_ilTB.Add(hIcon);

         hIcon= (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_XXX),

                   IMAGE_ICON,48, 48, 0);

         m_ilTB.Add(hIcon);

         hIcon= (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_XXX),

                   IMAGE_ICON,48, 48, 0);

         m_ilTB.Add(hIcon);

        

        

         hIcon= (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_XXX),

                   IMAGE_ICON,48, 48, 0);

         m_ilTB.Add(hIcon);

         hIcon= (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_XXX),

                   IMAGE_ICON,48, 48, 0);

         m_ilTB.Add(hIcon);

        

         m_wndToolBar.GetToolBarCtrl().SetImageList(&m_ilTB);

         this->CenterWindow();

        

// TODO: Deletethese three lines if you don't want the toolbar to

         //  be dockable

         //m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

         //EnableDocking(CBRS_ALIGN_ANY);

         //DockControlBar(&m_wndToolBar);

         //对话框右上角“X”关闭按钮禁用

         GetSystemMenu(FALSE)->EnableMenuItem(SC_CLOSE,MF_DISABLED);  

   GetSystemMenu(FALSE)->EnableMenuItem(SC_MAXIMIZE,MF_DISABLED);

         return0;

}

5状态栏显示:

// SingleViewTestView.h : interface of theCSingleViewTestView class

//

类中定义:

public:

         //定时器计算系统运行时间

         intm_starttime ;

         longint m_currenttime;

         DWORDm_timerHandle;

         //控制状态栏

         CStatusBar * pstatus;

         //状态栏显示

         CStringm_developer;

         CStringm_currentuser;

         CStringm_systemtime;

         SYSTEMTIME m_timeSystime;

 

// SingleViewTestView.cpp : implementationof the CSingleViewTestView class

//

#include"MainFrm.h"               //头文件包含

afx_msg void OnTimer(UINT nIDEvent);

ON_WM_TIMER()

void CSingleViewTestView::OnTimer(UINTnIDEvent)

{

         //TODO: Add your message handler code here and/or call default

         m_currenttime= GetTickCount();

         //RunStateShow(0);

         longint runtime = m_currenttime - m_starttime;

         intcomputerHours = (runtime / (3600 * 999)) % 24;

         intcomputerminutes = (runtime / (60 * 999)) % 60;

         intcomputerseconds = (runtime / 999) % 60;

         //m_runtime.Format("%d:%d:%d",computerHours,computerminutes,computerseconds);

         GetLocalTime(&m_timeSystime);

         m_systemtime.Format("            %4d/%02d/%02d %02d:%02d:%02d",m_timeSystime.wYear,m_timeSystime.wMonth,m_timeSystime.wDay,m_timeSystime.wHour,m_timeSystime.wMinute,m_timeSystime.wSecond);

   pstatus->SetPaneText(3,m_systemtime);

         //UpdateData(FALSE);    

         CFormView::OnTimer(nIDEvent);

}

void CSingleViewTestView::OnInitialUpdate()

{

         CFormView::OnInitialUpdate();

         GetParentFrame()->RecalcLayout();

         ResizeParentToFit();

         //新增程序代码,这里是TabCtrl控件容器的选项显示

         TCITEMitem;

         item.mask= TCIF_TEXT;

         item.pszText= "管理";  

         m_tabcontrl.InsertItem(0,&item);

         item.pszText="匹配";

         m_tabcontrl.InsertItem(1,&item);

         item.pszText= "分配";  

         m_tabcontrl.InsertItem(2,&item);

         item.pszText="操作";

         m_tabcontrl.InsertItem(3,&item);

         item.pszText= "记录";  

         m_tabcontrl.InsertItem(4,&item);

         item.pszText="用户";

         m_tabcontrl.InsertItem(5,&item);        

         //

CMainFrame * pFram = (CMainFrame*) AfxGetApp()->m_pMainWnd;

         m_timerHandle= SetTimer(1,1000,NULL);

   pstatus = &(pFram->m_wndStatusBar);

         CStringdeveloper = "XXXXXX";

         pstatus->SetPaneText(2,developer);

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值