// AlarmPopupDlg.cpp : ʵÏÖÎļþ
|
//
|
|
#include "stdafx.h"
|
#include "BondEq.h"
|
#include "AlarmPopupDlg.h"
|
#include "afxdialogex.h"
|
#include "HorizontalLine.h"
|
#include "AlarmMonitor.h"
|
|
|
// CAlarmPopupDlg ¶Ô»°¿ò
|
|
IMPLEMENT_DYNAMIC(CAlarmPopupDlg, CDialogEx)
|
|
CAlarmPopupDlg::CAlarmPopupDlg(CWnd* pParent /*=NULL*/)
|
: CDialogEx(IDD_DIALOG_POPUP_ALARM, pParent)
|
{
|
m_crBkgnd = RGB(225, 225, 225);
|
m_hbrBkgnd = nullptr;
|
m_pActiveAlarm = nullptr;
|
}
|
|
CAlarmPopupDlg::~CAlarmPopupDlg()
|
{
|
}
|
|
void CAlarmPopupDlg::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialogEx::DoDataExchange(pDX);
|
}
|
|
|
BEGIN_MESSAGE_MAP(CAlarmPopupDlg, CDialogEx)
|
ON_WM_CTLCOLOR()
|
ON_WM_DESTROY()
|
ON_WM_SIZE()
|
ON_BN_CLICKED(IDC_BUTTON_CLOSE, &CAlarmPopupDlg::OnBnClickedButtonClose)
|
END_MESSAGE_MAP()
|
|
|
// CAlarmPopupDlg ÏûÏ¢´¦Àí³ÌÐò
|
|
|
BOOL CAlarmPopupDlg::OnInitDialog()
|
{
|
CDialogEx::OnInitDialog();
|
|
|
// ×ÖÌå
|
HFONT hFontDefault = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
|
LOGFONT lf;
|
|
::GetObject(hFontDefault, sizeof(LOGFONT), &lf);
|
lf.lfHeight -= 8;
|
lf.lfWeight = 700;
|
m_fontTitle.CreateFontIndirect(&lf);
|
|
::GetObject(hFontDefault, sizeof(LOGFONT), &lf);
|
lf.lfHeight -= 8;
|
m_fontLevel.CreateFontIndirect(&lf);
|
|
::GetObject(hFontDefault, sizeof(LOGFONT), &lf);
|
lf.lfHeight -= 16;
|
m_fontName.CreateFontIndirect(&lf);
|
|
::GetObject(hFontDefault, sizeof(LOGFONT), &lf);
|
lf.lfHeight -= 8;
|
m_fontDescription.CreateFontIndirect(&lf);
|
|
GetDlgItem(IDC_LABEL_TITLE)->SetFont(&m_fontTitle);
|
GetDlgItem(IDC_LABEL_LEVEL)->SetFont(&m_fontLevel);
|
GetDlgItem(IDC_LABEL_NAME)->SetFont(&m_fontName);
|
GetDlgItem(IDC_LABEL_DESCRIPTION)->SetFont(&m_fontDescription);
|
|
|
// ͼ±ê
|
CString strIcon1;
|
HICON hIcon;
|
CStatic* pStatic;
|
|
strIcon1.Format(_T("%s\\Res\\Alarm_o_24.ico"), theApp.m_strAppDir);
|
pStatic = (CStatic*)GetDlgItem(IDC_ICON_TITLE);
|
hIcon = (HICON)::LoadImage(AfxGetInstanceHandle(),
|
strIcon1, IMAGE_ICON, 24, 24,
|
LR_LOADFROMFILE | LR_DEFAULTCOLOR | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
|
pStatic->SetIcon(hIcon);
|
|
strIcon1.Format(_T("%s\\Res\\Alarm_o_64.ico"), theApp.m_strAppDir);
|
pStatic = (CStatic*)GetDlgItem(IDC_ICON_ALARM);
|
hIcon = (HICON)::LoadImage(AfxGetInstanceHandle(),
|
strIcon1, IMAGE_ICON, 64, 64,
|
LR_LOADFROMFILE | LR_DEFAULTCOLOR | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
|
pStatic->SetIcon(hIcon);
|
|
|
// ¹Ø±Õ°´Å¥
|
strIcon1.Format(_T("%s\\Res\\close_blcak_24.ico"), theApp.m_strAppDir);
|
pStatic = (CStatic*)GetDlgItem(IDC_ICON_ALARM);
|
hIcon = (HICON)::LoadImage(AfxGetInstanceHandle(),
|
strIcon1, IMAGE_ICON, 128, 128,
|
LR_LOADFROMFILE | LR_DEFAULTCOLOR | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
|
m_btnClose.SubclassDlgItem(IDC_BUTTON_CLOSE, this);
|
m_btnClose.SetIcon(hIcon, hIcon, 24);
|
|
|
// ½â³ý¾¯¸æ°´Å¥
|
m_btnAlarmOff.SubclassDlgItem(IDC_BUTTON_ALARM_OFF, this);
|
m_btnAlarmOff.SetFrameColor(BS_NORMAL, BTN_ALARM_OFF_FRAME_NORMAL);
|
m_btnAlarmOff.SetFrameColor(BS_HOVER, BTN_ALARM_OFF_FRAME_HOVER);
|
m_btnAlarmOff.SetFrameColor(BS_PRESS, BTN_ALARM_OFF_FRAME_PRESS);
|
m_btnAlarmOff.SetBkgndColor(BS_NORMAL, BTN_ALARM_OFF_BKGND_NORMAL);
|
m_btnAlarmOff.SetBkgndColor(BS_HOVER, BTN_ALARM_OFF_BKGND_HOVER);
|
m_btnAlarmOff.SetBkgndColor(BS_PRESS, BTN_ALARM_OFF_BKGND_PRESS);
|
|
|
// ¾²Òô°´Å¥
|
m_btnSoundOff.SubclassDlgItem(IDC_BUTTON_SOUND_OFF, this);
|
m_btnSoundOff.SetFrameColor(BS_NORMAL, BTN_SOUND_OFF_FRAME_NORMAL);
|
m_btnSoundOff.SetFrameColor(BS_HOVER, BTN_SOUND_OFF_FRAME_HOVER);
|
m_btnSoundOff.SetFrameColor(BS_PRESS, BTN_SOUND_OFF_FRAME_PRESS);
|
m_btnSoundOff.SetBkgndColor(BS_NORMAL, BTN_SOUND_OFF_BKGND_NORMAL);
|
m_btnSoundOff.SetBkgndColor(BS_HOVER, BTN_SOUND_OFF_BKGND_HOVER);
|
m_btnSoundOff.SetBkgndColor(BS_PRESS, BTN_SOUND_OFF_BKGND_PRESS);
|
|
|
// ºáÏß1
|
CHorizontalLine* pLine = CHorizontalLine::Hook(GetDlgItem(IDC_LINE1)->m_hWnd);
|
pLine->SetBkgndColor(RGB(225, 225, 225));
|
pLine->SetLineColor(RGB(168, 168, 168));
|
|
pLine = CHorizontalLine::Hook(GetDlgItem(IDC_LINE2)->m_hWnd);
|
pLine->SetBkgndColor(RGB(225, 225, 225));
|
pLine->SetLineColor(RGB(168, 168, 168));
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
// Òì³£: OCX ÊôÐÔÒ³Ó¦·µ»Ø FALSE
|
}
|
|
|
HBRUSH CAlarmPopupDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
{
|
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
|
|
if (nCtlColor == CTLCOLOR_STATIC) {
|
pDC->SetBkColor(m_crBkgnd);
|
pDC->SetTextColor(RGB(0, 0, 0));
|
}
|
|
if (m_hbrBkgnd == nullptr) {
|
m_hbrBkgnd = CreateSolidBrush(m_crBkgnd);
|
}
|
|
return m_hbrBkgnd;
|
}
|
|
|
void CAlarmPopupDlg::OnDestroy()
|
{
|
CDialogEx::OnDestroy();
|
|
if (m_hbrBkgnd != nullptr) {
|
::DeleteObject(m_hbrBkgnd);
|
}
|
|
if (m_pActiveAlarm != nullptr) {
|
m_pActiveAlarm->release();
|
m_pActiveAlarm = nullptr;
|
}
|
}
|
|
|
void CAlarmPopupDlg::OnSize(UINT nType, int cx, int cy)
|
{
|
CDialogEx::OnSize(nType, cx, cy);
|
|
// TODO: ÔÚ´Ë´¦Ìí¼ÓÏûÏ¢´¦Àí³ÌÐò´úÂë
|
}
|
|
void CAlarmPopupDlg::AlarmOn()
|
{
|
ShowFirstAlarm();
|
}
|
|
void CAlarmPopupDlg::AlarmOff()
|
{
|
ShowFirstAlarm();
|
}
|
|
void CAlarmPopupDlg::OnBnClickedButtonClose()
|
{
|
// OnCancel();
|
ShowWindow(SW_HIDE);
|
}
|
|
void CAlarmPopupDlg::ShowFirstAlarm()
|
{
|
// È¡³ö¾¯¸æÐÅÏ¢Ê×Ìõ²¢ÏÔʾ
|
if (m_pActiveAlarm != nullptr) {
|
m_pActiveAlarm->release();
|
}
|
|
CString strText;
|
CAlarmMonitor* pAlarmMonitor = (CAlarmMonitor*)theApp.m_model.getBonder().GetComponent(ALARM_MONITOR);
|
m_pActiveAlarm = pAlarmMonitor->getActiveAlarm();
|
if (m_pActiveAlarm != nullptr) {
|
m_pActiveAlarm->addRef();
|
SetDlgItemText(IDC_LABEL_NAME, pAlarmMonitor->getAlarmText(m_pActiveAlarm->getId()));
|
strText.Format(_T("ID: %d"), m_pActiveAlarm->getId());
|
SetDlgItemText(IDC_LABEL_LEVEL, strText);
|
ShowWindow(SW_SHOW);
|
}
|
else {
|
ShowWindow(SW_HIDE);
|
}
|
}
|