您的位置:首页 > 其它

VS2015 MFC显示系统时间

2016-08-23 15:10 501 查看
视频资源:http://tieba.baidu.com/p/1897504949   ; 由于编译环境不同,部分代码有异  ;  Debug X86

// 系统时间2Dlg.cpp : 实现文件

//

#include "stdafx.h"

#include "系统时间2.h"

#include "系统时间2Dlg.h"

#include "afxdialogex.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

// 用于应用程序“关于”菜单项的 CAboutDlg 对话框

class CAboutDlg : public CDialogEx

{

public:

 CAboutDlg();

// 对话框数据

#ifdef AFX_DESIGN_TIME

 enum { IDD = IDD_ABOUTBOX };

#endif

 protected:

 virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

// 实现

protected:

 DECLARE_MESSAGE_MAP()

};

CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX)

{

}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

 CDialogEx::DoDataExchange(pDX);

}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)

END_MESSAGE_MAP()

// C系统时间2Dlg 对话框

C系统时间2Dlg::C系统时间2Dlg(CWnd* pParent /*=NULL*/)

 : CDialogEx(IDD_MY2_DIALOG, pParent)

{

 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

void C系统时间2Dlg::DoDataExchange(CDataExchange* pDX)

{

 CDialogEx::DoDataExchange(pDX);

}

BEGIN_MESSAGE_MAP(C系统时间2Dlg, CDialogEx)

 ON_WM_SYSCOMMAND()

 ON_WM_PAINT()

 ON_WM_QUERYDRAGICON()

 ON_BN_CLICKED(IDC_exitbt, &C系统时间2Dlg::OnBnClickedexitbt)

 ON_STN_CLICKED(IDC_curtime, &C系统时间2Dlg::OnStnClickedcurtime)

 ON_WM_TIMER()

END_MESSAGE_MAP()

// C系统时间2Dlg 消息处理程序

BOOL C系统时间2Dlg::OnInitDialog() //初始化函数

{

 CDialogEx::OnInitDialog();

 // 将“关于...”菜单项添加到系统菜单中。

 // IDM_ABOUTBOX 必须在系统命令范围内。

 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

 ASSERT(IDM_ABOUTBOX < 0xF000);

 CMenu* pSysMenu = GetSystemMenu(FALSE);

 if (pSysMenu != NULL)

 {

  BOOL bNameValid;

  CString strAboutMenu;

  bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);

  ASSERT(bNameValid);

  if (!strAboutMenu.IsEmpty())

  {

   pSysMenu->AppendMenu(MF_SEPARATOR);

   pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

  }

 }

 // 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动

 //  执行此操作

 SetIcon(m_hIcon, TRUE);   // 设置大图标

 SetIcon(m_hIcon, FALSE);  // 设置小图标

 SetTimer( 1, 1000, NULL);

 //SetTimer(1,1000, NULL);  //在这里设置计数器

 ShowWindow(SW_MAXIMIZE);

 // TODO: 在此添加额外的初始化代码

 return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE

}

void C系统时间2Dlg::OnSysCommand(UINT nID, LPARAM lParam)

{

 if ((nID & 0xFFF0) == IDM_ABOUTBOX)

 {

  CAboutDlg dlgAbout;

  dlgAbout.DoModal();

 }

 else

 {

  CDialogEx::OnSysCommand(nID, lParam);

 }

}

// 如果向对话框添加最小化按钮,则需要下面的代码

//  来绘制该图标。  对于使用文档/视图模型的 MFC 应用程序,

//  这将由框架自动完成。

void C系统时间2Dlg::OnPaint()

{

 if (IsIconic())

 {

  CPaintDC dc(this); // 用于绘制的设备上下文

  SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

  // 使图标在工作区矩形中居中

  int cxIcon = GetSystemMetrics(SM_CXICON);

  int cyIcon = GetSystemMetrics(SM_CYICON);

  CRect rect;

  GetClientRect(&rect);

  int x = (rect.Width() - cxIcon + 1) / 2;

  int y = (rect.Height() - cyIcon + 1) / 2;

  // 绘制图标

  dc.DrawIcon(x, y, m_hIcon);

 }

 else

 {

  CDialogEx::OnPaint();

 }

}

//当用户拖动最小化窗口时系统调用此函数取得光标

//显示。

HCURSOR C系统时间2Dlg::OnQueryDragIcon()

{

 return static_cast<HCURSOR>(m_hIcon);

}

/*

void CMFCDlg::OnTimer(UINT nIDEvent)

{

CTime t = CTime::GetCurrentTime();

CString strTime = t.Format(_T("%02d:%02d:%02d"), t.GetHour(), t.GetMinute(), t.GetSecond());;

//str.Format("%02d:%02d:%02d",t.GetHour(),t.GetMinute(),t.GetSecond());

SetDlgItemText();

 CDialog::OnTiner(nIDEvent);

}

*/

void C系统时间2Dlg::OnBnClickedexitbt()

{

 

 CDialog::OnCancel();

 //KillTimer(1);

  // TODO: 在此添加控件通知处理程序代码

}

void C系统时间2Dlg::OnStnClickedcurtime()

{

 // TODO: 在此添加控件通知处理程序代码

}

void C系统时间2Dlg::OnTimer(UINT_PTR nIDEvent)

{

 // TODO: 在此添加消息处理程序代码和/或调用默认值

 CTime t = CTime::GetCurrentTime();

 CString str;

 str.Format(_T("%02d:%02d:%02d"), t.GetHour(), t.GetMinute(), t.GetSecond());

 SetDlgItemText(IDC_curtime,str);//在该控件里面显示时间

 CDialogEx::OnTimer(nIDEvent);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息