• PUDN用户
    了解作者
  • C++
    开发工具
  • 144KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 5
    下载次数
  • 2015-01-17 16:26
    上传日期
这个程序是一个个人考勤软件,它从系统时钟获取时间信息,可逐日记录下个人每天的工作时间,按月统计汇总,按年形成文件.可以查看过去的记录,也可把记录按月打印出来.或进行年汇总。本程序是一个基于对话框的实用程序,在基于对话框界面的程序中实现打印和打印预览是采用了非常规 MFC 方法。
demo.rar
  • attendance
  • 说明.txt
    3.7KB
内容介绍
这个程序是一个个人考勤软件,它从系统时钟获取时间信息,只要上下班时按时在当日考勤栏内点击相应的栏目标题即可逐日记录下个人每天的工作时间,按月统计汇总,按年形成文件.可以随意查看过去的记录,也可把记录按月打印出来.在年汇总栏内可以选择要查看或打印的月份。 这个小程序是我的一个习作,希望与感兴趣的同好切磋交流。 本程序是一个基于对话框的实用程序,在基于对话框界面的程序中实现打印和打印预览是采用了非常规MFC方法。 基于对话框的程序原本是不含框架类CFrameWnd和视类CView对象的,为了实现打印和打印预览,需要在主对话框对象中创建子框架对象CChildFrame,再在子框架中创建子视类对象CChildView,打印和打印预览就在CChildView中完成。这部分内容基本上直接取自北京希望电子出版社出版的《Vsual C++ 编程高手》一书中的例18\05,但要把书中的主框架CMainFrm改为子框架CChildFrame而置于主对话框管理之下。具体做法如下: 1.在创建应用程序实例的InitInstance()函数中创建我们的主对话框对象: CAttendanceDlg dlg; 之后立即把这个对象的指针信息存入CWinApp::m_pMainWnd 和附加的m_pMiddle中备用: m_pMainWnd = &dlg; m_pMiddle = &dlg; 2.在ClassWizard中为主对话框类导入OnCreate()函数,在其中创建子框架对象CChildFrame CChildFrame* pFrame = new CChildFrame; m_pChildFrame = pFrame; pFrame->LoadFrame(IDR_MAINFRAME, WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL,//,m_pMainWnd NULL); 暂时将其显示状态置为隐藏: m_pChildFrame->ShowWindow(SW_HIDE); 3.在子框架对象CChildFrame的OnCreate()函数中创建子视类对象CChildView CCreateContext context; context.m_pNewViewClass = RUNTIME_CLASS(CChildView); context.m_pCurrentFrame = this; context.m_pCurrentDoc = NULL; context.m_pLastView = NULL; m_pView = STATIC_DOWNCAST(CChildView, CreateView(&context)); //CreateView(&context); if(m_pView != NULL) { m_pView->ShowWindow(SW_HIDE);//暂时将其显示状态也置为隐藏 SetActiveView(m_pView); } 4.在主对话框的打印或打印预览处理函数中只要向子框架CChildFrame发送相应的消息即可: 对于打印函数为: m_pChildFrame->SendMessage(WM_COMMAND, ID_FILE_PRINT); 或对于打印预览函数为: m_pChildFrame->ShowWindow(SW_SHOW);//将子框架CChildFrame显示状态置为显示 m_pChildFrame->SendMessage(WM_COMMAND, ID_FILE_PRINT_PREVIEW);//打印预览 5.在子框架CChildFrame的打印预览处理函数中需要将CWinApp::m_pMainWnd暂时替换为子框架CChildFrame的指针,并把子视类对象的显示状态激活后调用子视类对象的打印预览处理函数 CAttendanceApp* app=(CAttendanceApp*)AfxGetApp(); app->m_pMainWnd = this;//应用程序主窗口临时替换为子框架窗口 m_pView->ShowWindow(SW_SHOW); SetActiveView(m_pView); m_pView->OnFilePrintPreview(this); 6.打印预览结束退出之前必须恢复原有的显示状态,并将CWinApp::m_pMainWnd恢复为主对话框: pParent->ShowWindow(SW_HIDE);//将子框架CChildFrame显示状态重新置为隐藏 pParent->UpdateWindow(); CAttendanceApp* app=(CAttendanceApp*)AfxGetApp(); app->m_pMainWnd = app->m_pMiddle;//应用程序主窗口恢复为主对话框窗口 app->m_pMiddle->UpdateWindow(); 这些后处理工作放在CWrapperView::OnEndPrintPreview(..)函数中的结尾处完成。 7.最后还要为子框架创建一个标识为IDR_MAINFRAME的菜单资源,其中只需要打印和打印预览两项即可。 8.打印的内容和页面布局都放在CChildView::OnDraw(CDC* pDC)函数中完成。 9.函数CAttendanceApp::SetPrntOrientation()是用来强制设定打印方向为纵向的,在打印或打印预览中先要调用它。如果要设为横向则只要把其中的 DMORIENT_PORTRAIT 替换为 DMORIENT_LANDSCAPE 即可。 10. 2.1版补充:可能是由于子框架、子视图成为对话框的子对象以后,致使本来在框架、视图中畅通的UPDATE_COMMAND_UI消息路由被阻断,造成打印预览对话框各个命令按钮不能正常地更新其命令状态,解决的办法是在 CMyPreviewView::OnDraw(CDC* pDC)函数的最后添加一行 m_pToolBar->OnUpdateCmdUI((CFrameWnd*)AfxGetApp()->m_pMainWnd,1); 或 m_pToolBar->PostMessage(WM_IDLEUPDATECMDUI,(WPARAM)TRUE);每当视图发生改变重画以后及时向预览视图补发UPDATE_COMMAND_UI消息,使工具条和状态条及时更新其状态。 阅读以上说明请参照程序的源代码。
评论
    相关推荐
    • vc.zip
      VC++6.0 下的指纹考勤系统,包括指纹采集、存储、识别、添加等功能
    • uestc-coursework-repo:2018 - 2022 年,就读于电子科技大学(UESTC)软件工程(互联网“+”)
      程序设计与算法基础课程项目,根据二叉树的特性完成的小 demo. C++ 程序设计与算法基础课程项目,运用上数据结构的知识。 Python Python 语言程序设计课程项目,运用上 的简单可视化应用程序。 Python Python 语言...
    • 员工考勤管理系统源码java-self-hosted:自托管
      员工考勤管理系统源码java 自托管 学习和课程 - Chamilo LMS 允许您创建一个虚拟校园,以提供在线或半在线培训。 () GPLv3 PHP - Open edX 平台是开源代码,支持 . () AGPLv3 Python - 符合开源 ExperienceAPI 的...
    • 淘特OA办公自动化系统 v2.0
       淘特OA协同办公系统功能列表:个人办公: 通知公告 即时消息 传阅信息 发起的传阅 收到的传阅 考勤登记考勤统计 出差登记 邮件管理 发送邮件 收件箱 发件箱 邮箱设置 修改资料 修改密码 日程任务:添加日程 个人...
    • 淘特OA办公自动化系统 v2.0.rar
      系统管理:模块管理 部门管理 员工管理 角色管理 权限管理 工作流管理 字段管理 登录明细 操作日志 系统重置 资源管理 更换LOGO 考勤设置 职位管理 职称管理 工作状态 合同类别 公告分类 论坛分类 合同状态 工作流...
    • EEE_Students_Projects:该存储库包含我从2015年到2019年在本科生中从事的所有研究项目,通常使用C ++
      学生项目 该存储库包含我从2015年到2019年在本科生中从事的所有研究项目,通常使用C ++和Python。 如果您需要示意图和教科书,请随时通过...考勤系统 boat_accident_alerting_system 带有电压水平指示器的电池充电器
    • 考勤管理系统
      利用 .net mvc+EasyUI开发的卡在线考勤管理系统,方便在线管理员工或学院的考勤记录
    • C#+Asp.Net开发的大型OA办公系统
      系统管理:模块管理 部门管理 员工管理 角色管理 权限管理 工作流管理 字段管理 登录明细 操作日志 系统重置 资源管理 更换LOGO 考勤设置 职位管理 职称管理 工作状态 合同类别 公告分类 论坛分类 合同状态 工作流...
    • JAVA+C#+VB+中控考勤机 SDK DEMO 文档 64位
      JAVA+C#+VB 连接中控考勤机 开发包demo。包含中控sdk,api文档,demo,jacob-1.17-M2。
    • qpopper2.53.tar.Z
      pop3 server