📄 backgroundwnd.cpp
字号:
// BackgroundWnd.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "BackgroundWnd.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CBackgroundWnd
#define STEP_TIME 200
#define ID_BACKGROUND_TIMER 1002
LPCTSTR WINDOW_MESSAGE_KEY = TEXT("MyWindowMessageKey");
LPCTSTR WINDOW_TITLE = TEXT("MyWindowTitle");
CBackgroundWnd::CBackgroundWnd()
: m_bInProcess(FALSE)
{
m_nMessage = RegisterWindowMessage(WINDOW_MESSAGE_KEY);
}
CBackgroundWnd::~CBackgroundWnd()
{
}
BEGIN_MESSAGE_MAP(CBackgroundWnd, CWnd)
//{{AFX_MSG_MAP(CBackgroundWnd)
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBackgroundWnd message handlers
LRESULT CBackgroundWnd::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if (message==m_nMessage) {
m_bInProcess = TRUE;
m_bInProcess = FALSE;
OnMessage(wParam, lParam);
}
return CWnd::WindowProc(message, wParam, lParam);
}
void CBackgroundWnd::Create()
{
CString strParentClass = AfxRegisterWndClass(0);
CWnd::CreateEx(0, strParentClass, WINDOW_TITLE, 0, -1, -1, 0, 0, 0, 0);
SetTimer(ID_BACKGROUND_TIMER, STEP_TIME, NULL);
}
void CBackgroundWnd::OnTimer(UINT nIDEvent)
{
if (nIDEvent==ID_BACKGROUND_TIMER) {
if (!m_bInProcess) {
m_bInProcess = TRUE;
RunSlice();
m_bInProcess = FALSE;
}
}
CWnd::OnTimer(nIDEvent);
}
void CBackgroundWnd::RunSlice() {
// 在此添加后台工作,比如说写日志文件等
MessageBeep(MB_OK);
}
void CBackgroundWnd::OnMessage(WPARAM wParam, LPARAM lParam)
{
::MessageBox(NULL, TEXT("Message has been received!"), TEXT("Message from background"), MB_OK);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -