|
// maindlg.h
class CMainDlg : public CDialogImpl<CMainDlg>
{
public:
enum { IDD = IDD_MAINDLG };
CListBox
m_list_font; // ÆùÆ®¸í Ç¥½Ã¿ë
// ¸Þ¼¼Áö ¸Ê
BEGIN_MSG_MAP_EX(CMainDlg)
MSG_WM_INITDIALOG(OnInitDialog)
COMMAND_HANDLER_EX(IDC_LIST_FONT,
LBN_DBLCLK, OnListDblClick)
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_list_font = GetDlgItem(IDC_LIST_FONT);
// »ç¿ë °¡´ÉÇÑ ÆùÆ®¸í
¿°Å
CClientDC dc(m_hWnd);
EnumFontFamilies(dc, NULL,
(FONTENUMPROC)FontProc, (LPARAM)m_list_font.m_hWnd);
return TRUE;
}
static int CALLBACK FontProc(ENUMLOGFONT
*lpelf,
NEWTEXTMETRIC
*lpntm, int nFontType,
LPARAM lParam)
{
CListBox list = (HWND)lParam;
// TrueTypeÆùÆ®¸í¸¸ ¸®½ºÆ®¿¡ Ãß°¡
if(nFontType
& TRUETYPE_FONTTYPE)
list.AddString(lpelf->elfLogFont.lfFaceName);
return 1;
}
void OnListDblClick(UINT
uNotifyCode, int nID, HWND hWndCtl){
// ÇöÀç ¼±Åõǰí ÀÖ´Â ¾ÆÀÌÅÛÀ» ÃëµæÇØ Ç¥½Ã
int nIndex = m_list_font.GetCurSel();
if(nIndex !=
LB_ERR){
CString strText;
m_list_font.GetText(nIndex,
strText);
MessageBox(strText);
}
}
void OnOK(UINT uNotifyCode, int nID, HWND hWndCtl){
EndDialog(nID);
}
void OnCancel(UINT uNotifyCode, int nID, HWND hWndCtl){
EndDialog(nID);
}
};
|