📄 mainfrm.cpp
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//
#include "stdafx.h"
#include "ftpclient.h"
#include "MainFrm.h"
#include "viewDial.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMainFrame
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_WM_PAINT()
ON_WM_ERASEBKGND()
ON_UPDATE_COMMAND_UI(ID_INDICATOR_DATE, OnUpdateDate)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
}
CMainFrame::~CMainFrame()
{
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
int nOrigSize =sizeof(indicators) / sizeof(UINT);
UINT* pIndicators = new UINT[nOrigSize +1];
memcpy(pIndicators, indicators,sizeof(indicators));
IndexOfTimeZone = nOrigSize++;
pIndicators[IndexOfTimeZone] =ID_INDICATOR_DATE;
m_wndStatusBar.SetIndicators(pIndicators,nOrigSize);
delete[] pIndicators;
return 0;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~(LONG) FWS_ADDTOTITLE;
return CFrameWnd::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
CFrameWnd::AssertValid();
}
void CMainFrame::Dump(CDumpContext& dc) const
{
CFrameWnd::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers
void CMainFrame::OnPaint()
{
CPaintDC dc(this);
}
BOOL CMainFrame::OnEraseBkgnd(CDC* pDC)
{
return TRUE;
}
void CMainFrame::OnUpdateDate(CCmdUI* pCmdUI)
{
//得到系统时间
COleDateTime Datetime =COleDateTime::GetCurrentTime();
CString strDateTime =Datetime.Format(_T("%A %Y-%m-%d %H:%M:%S"));
//根据时间
//字符串的长度计算它在状态栏输出所需长度
CSize size;
HGDIOBJ hOldFont = NULL;
//得到当前状态栏字体
HFONT hFont =(HFONT)m_wndStatusBar.SendMessage(WM_GETFONT);
CClientDC dc(NULL);
if(hFont !=NULL)
hOldFont = dc.SelectObject(hFont);
//得到当前文本所需显示宽度
size = dc.GetTextExtent(strDateTime);
if(hOldFont!= NULL)
dc.SelectObject(hOldFont);
//修改状态栏
//设置时间区域宽度
m_wndStatusBar.SetPaneInfo(IndexOfTimeZone,ID_INDICATOR_DATE, 0, size.cx);
//m_wndStatusBar为状态栏变量,MDI中已自动添加,
//设置时间区域标题
pCmdUI->SetText(strDateTime);
//启用时间区域
pCmdUI->Enable(TRUE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -