1 // ProgressDlg.cpp : implementation file
5 #include "nel_launcher.h"
6 #include "ProgressDlg.h"
11 static char THIS_FILE
[] = __FILE__
;
14 #define POS_PROGRESS_X 100
15 #define POS_PROGRESS_Y 32
16 #define POS_PROGRESS_W 300
17 #define POS_PROGRESS_H 6
18 #define TXT_PROGRESS_Y 5
19 #define TXT_PROGRESS_H 15
20 #define BG_MSG_CLR RGB(35, 64, 44)
22 /////////////////////////////////////////////////////////////////////////////
23 // CProgressDlg dialog
26 CProgressDlg::CProgressDlg(CWnd
* pParent
/*=NULL*/)
27 : CDialog(CProgressDlg::IDD
, pParent
)
29 //{{AFX_DATA_INIT(CProgressDlg)
30 // NOTE: the ClassWizard will add member initialization here
33 m_font
.CreateFont(12, 6, 0, 0, FW_BOLD
, FALSE
, FALSE
, FALSE
, ANSI_CHARSET
, OUT_CHARACTER_PRECIS
, CLIP_CHARACTER_PRECIS
, PROOF_QUALITY
, DEFAULT_PITCH
, "Arial");
34 m_brushBG
.CreateSolidBrush(BG_MSG_CLR
);
38 void CProgressDlg::DoDataExchange(CDataExchange
* pDX
)
40 CDialog::DoDataExchange(pDX
);
41 //{{AFX_DATA_MAP(CProgressDlg)
42 // NOTE: the ClassWizard will add DDX and DDV calls here
47 BEGIN_MESSAGE_MAP(CProgressDlg
, CDialog
)
48 //{{AFX_MSG_MAP(CProgressDlg)
56 /////////////////////////////////////////////////////////////////////////////
57 // CProgressDlg message handlers
58 void CProgressDlg::Show(BOOL bShow
)
63 void CProgressDlg::SetRange(int iRange
)
65 m_wndBar
.SetRange(iRange
);
68 void CProgressDlg::UpdatePos(int iPos
)
70 m_wndBar
.UpdatePos(iPos
);
73 void CProgressDlg::UpdateMsg(CString csMsg
)
77 GetDlgItemText(IDC_MSG_PROGRESS_STATIC
, csLast
);
79 for(m_iClr
= 0; m_iClr
< 256; m_iClr
+= 2)
81 SetDlgItemText(IDC_MSG_PROGRESS_STATIC
, csMsg
);
86 void CProgressDlg::OnPaint()
88 CPaintDC
dc(this); // device context for painting
91 BOOL
CProgressDlg::OnInitDialog()
93 CDialog::OnInitDialog();
95 LPCTSTR szClass
= AfxRegisterWndClass(NULL
);
98 GetDlgItem(IDC_MSG_PROGRESS_STATIC
)->SetFont(&m_font
);
100 m_wndBar
.Create(szClass
, _T("PatchBar"), WS_CHILD
| WS_VISIBLE
, r
, this, 1234);
101 m_wndBar
.MoveWindow(POS_PROGRESS_X
, POS_PROGRESS_Y
, POS_PROGRESS_W
, POS_PROGRESS_H
);
102 GetDlgItem(IDC_MSG_PROGRESS_STATIC
)->MoveWindow(POS_PROGRESS_X
+1, TXT_PROGRESS_Y
, POS_PROGRESS_W
-2, TXT_PROGRESS_H
);
104 m_pictBG
.LoadPicture(IDP_PROGRESS
);
106 return TRUE
; // return TRUE unless you set the focus to a control
107 // EXCEPTION: OCX Property Pages should return FALSE
110 void CProgressDlg::OnDestroy()
112 CDialog::OnDestroy();
114 m_wndBar
.DestroyWindow();
117 HBRUSH
CProgressDlg::OnCtlColor(CDC
* pDC
, CWnd
* pWnd
, UINT nCtlColor
)
119 HBRUSH hbr
= CDialog::OnCtlColor(pDC
, pWnd
, nCtlColor
);
121 if(nCtlColor
== CTLCOLOR_STATIC
)
124 pDC
->SetBkColor(BG_MSG_CLR
);
125 pDC
->SetTextColor(RGB(std::max(m_iClr
-100, 0), m_iClr
, int(m_iClr
/2)));
130 BOOL
CProgressDlg::OnEraseBkgnd(CDC
* pDC
)
135 m_pictBG
.Display(*pDC
, r
);