|
// maindlg.h
class CMainDlg : public CDialogImpl<CMainDlg>
{
public:
enum { IDD = IDD_MAINDLG };
enum { MAX_DRAWTEXT = 256};
CEdit
m_edit_text; // ¹®ÀÚ ¼³Á¤¿ë ¿¡µðÆ®
CRect
m_rect;
// ¹®ÀÚ Ç¥½Ã¿ë ±¸Çü
// ¸Þ¼¼Áö ¸Ê
BEGIN_MSG_MAP_EX(CMainDlg)
MSG_WM_PAINT(OnPaint)
MSG_WM_INITDIALOG(OnInitDialog)
COMMAND_HANDLER_EX(IDC_EDIT_TEXT, EN_CHANGE, OnEditChange)
COMMAND_ID_HANDLER_EX(IDOK, OnOK)
COMMAND_ID_HANDLER_EX(IDCANCEL, OnCancel)
END_MSG_MAP()
LRESULT OnInitDialog(HWND hWnd,
LPARAM lParam){
// ½ºÅ©¸°ÀÇ Áß¾Ó¿¡ ¹èÄ¡
CenterWindow();
// Å« ¾ÆÀÌÄÜ ¼³Á¤
HICON hIcon = AtlLoadIconImage(IDR_MAINFRAME,
LR_DEFAULTCOLOR,
::GetSystemMetrics(SM_CXICON), ::GetSystemMetrics(SM_CYICON));
SetIcon(hIcon, TRUE);
// ÀÛÀº ¾ÆÀÌÄÜ ¼³Á¤
HICON hIconSmall = AtlLoadIconImage(IDR_MAINFRAME,
LR_DEFAULTCOLOR,
::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON));
SetIcon(hIconSmall, FALSE);
// ÄÁÆ®·Ñ ¼³Á¤
m_edit_text = GetDlgItem(IDC_EDIT_TEXT);
m_edit_text.SetLimitText(MAX_DRAWTEXT - 1);
// ¹®ÀÚ Ç¥½Ã¿ë ±¸ÇüÀ» Ãëµæ
CStatic view = GetDlgItem(IDC_STATIC_VIEW);
view.GetWindowRect(m_rect);
ScreenToClient(m_rect);
return TRUE;
}
void OnEditChange(UINT
uNotifyCode, int nID, HWND hWndCtl){
InvalidateRect(m_rect,
FALSE);
}
void OnPaint(HDC /*hDC*/){
CPaintDC dc(m_hWnd);
// Èò ±¸ÇüÀ» ¹¦È
CBrush brush;
brush.CreateSolidBrush(RGB(255, 255, 255));
dc.FillRect(m_rect, brush);
// ÅØ½ºÆ®»öÀ» ÆÄ¶ûÀ¸·Î
¼³Á¤
dc.SetTextColor(RGB(0, 0, 255));
HFONT hOldFont = dc.SelectFont(AtlGetDefaultGuiFont());
// Ŭ¶óÀÌ¾ðÆ® ±¸ÇüÀ» ÃëµæÇØ ,
ij¸¯ÅÍ ¶óÀÎÀ» ¹¦È
TCHAR
szText[MAX_DRAWTEXT];
m_edit_text.GetWindowText(szText,
MAX_DRAWTEXT);
dc.DrawText(szText, lstrlen(szText),
m_rect, DT_SINGLELINE | DT_CENTER |
DT_VCENTER);
// ¿øÀÇ ÆùÆ®¸¦ ¼±ÅÃ
dc.SelectFont(hOldFont);
}
void OnOK(UINT uNotifyCode, int nID, HWND hWndCtl){
EndDialog(nID);
}
void OnCancel(UINT uNotifyCode, int nID, HWND hWndCtl){
EndDialog(nID);
}
};
|