// PageAlarm.cpp : ʵÏÖÎļþ
|
//
|
|
#include "stdafx.h"
|
#include "BondEq.h"
|
#include "CPageAlarm.h"
|
#include "afxdialogex.h"
|
#include "Common.h"
|
|
|
// CPageAlarm ¶Ô»°¿ò
|
|
IMPLEMENT_DYNAMIC(CPageAlarm, CDialogEx)
|
|
CPageAlarm::CPageAlarm(CWnd* pParent /*=NULL*/)
|
: CDialogEx(IDD_PAGE_ALARM, pParent)
|
{
|
m_crBkgnd = PAGE_BACKGROUND_COLOR;
|
m_hbrBkgnd = nullptr;
|
m_pObserver = nullptr;
|
}
|
|
CPageAlarm::~CPageAlarm()
|
{
|
}
|
|
void CPageAlarm::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialogEx::DoDataExchange(pDX);
|
}
|
|
|
BEGIN_MESSAGE_MAP(CPageAlarm, CDialogEx)
|
ON_WM_CTLCOLOR()
|
ON_WM_DESTROY()
|
ON_WM_SIZE()
|
END_MESSAGE_MAP()
|
|
|
// CPageAlarm ÏûÏ¢´¦Àí³ÌÐò
|
|
void CPageAlarm::InitRxWindow()
|
{
|
/* code */
|
// ¶©ÔÄÊý¾Ý
|
IRxWindows* pRxWindows = RX_GetRxWindows();
|
pRxWindows->enableLog(5);
|
if (m_pObserver == NULL) {
|
m_pObserver = pRxWindows->allocObserver([&](IAny* pAny) -> void {
|
// onNext
|
pAny->addRef();
|
int code = pAny->getCode();
|
if (RX_CODE_LOG == code && ::IsWindow(m_hWnd)) {
|
|
}
|
|
pAny->release();
|
}, [&]() -> void {
|
// onComplete
|
}, [&](IThrowable* pThrowable) -> void {
|
// onErrorm
|
pThrowable->printf();
|
});
|
|
theApp.m_model.getObservable()->observeOn(pRxWindows->mainThread())
|
->subscribe(m_pObserver);
|
}
|
}
|
|
BOOL CPageAlarm::OnInitDialog()
|
{
|
CDialogEx::OnInitDialog();
|
InitRxWindow();
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
// Òì³£: OCX ÊôÐÔÒ³Ó¦·µ»Ø FALSE
|
}
|
|
|
HBRUSH CPageAlarm::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
{
|
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
|
|
if (nCtlColor == CTLCOLOR_STATIC) {
|
pDC->SetBkColor(m_crBkgnd);
|
}
|
|
if (m_hbrBkgnd == nullptr) {
|
m_hbrBkgnd = CreateSolidBrush(m_crBkgnd);
|
}
|
|
return m_hbrBkgnd;
|
}
|
|
|
void CPageAlarm::OnDestroy()
|
{
|
CDialogEx::OnDestroy();
|
|
if (m_hbrBkgnd != nullptr) {
|
::DeleteObject(m_hbrBkgnd);
|
}
|
|
if (m_pObserver != NULL) {
|
m_pObserver->unsubscribe();
|
m_pObserver = NULL;
|
}
|
}
|
|
|
void CPageAlarm::OnSize(UINT nType, int cx, int cy)
|
{
|
CDialogEx::OnSize(nType, cx, cy);
|
|
// TODO: ÔÚ´Ë´¦Ìí¼ÓÏûÏ¢´¦Àí³ÌÐò´úÂë
|
}
|