// CharOpts.cpp : implementation file // #include "stdafx.h" #include "ocrutil.h" #include "CharOpts.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CCharacterOptions dialog CCharacterOptions::CCharacterOptions(pCHARACTEROPTIONS pCharOpts, CWnd* pParent /*=NULL*/) : CDialog(CCharacterOptions::IDD, pParent) { //{{AFX_DATA_INIT(CCharacterOptions) m_bBold = FALSE; m_bItalic = FALSE; m_bUnderLine = FALSE; m_nFontSize = 0; //}}AFX_DATA_INIT m_pCharOpts = pCharOpts; } void CCharacterOptions::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CCharacterOptions) DDX_Control(pDX, IDC_CMB_FONT_NAME, m_cmbFontName); DDX_Control(pDX, IDC_CMB_FONT_MODE, m_cmbFontMode); DDX_Check(pDX, IDC_CHK_FONT_BOLD, m_bBold); DDX_Check(pDX, IDC_CHK_FONT_ITALIC, m_bItalic); DDX_Check(pDX, IDC_CHK_FONT_UNDERLINE, m_bUnderLine); DDX_Text(pDX, IDC_EDIT_FONT_SIZE, m_nFontSize); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CCharacterOptions, CDialog) //{{AFX_MSG_MAP(CCharacterOptions) ON_CBN_SELCHANGE(IDC_CMB_FONT_MODE, OnSelchangeCmbFontMode) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CCharacterOptions message handlers BOOL CCharacterOptions::OnInitDialog() { CDialog::OnInitDialog(); m_cmbFontMode.AddString(TEXT("None")); m_cmbFontMode.AddString(TEXT("Auto")); m_cmbFontMode.AddString(TEXT("Predefined")); m_cmbFontMode.SetItemData(0, SEL_NONE); m_cmbFontMode.SetItemData(1, SEL_AUTO); m_cmbFontMode.SetItemData(2, SEL_PREDEFINED); m_cmbFontMode.SetCurSel(m_pCharOpts->SelOutputFont); m_cmbFontName.AddString(TEXT("Serif - Times New Roman")); m_cmbFontName.AddString(TEXT("SansSerif font - Arial")); m_cmbFontName.AddString(TEXT("Serif font - Courier New")); m_cmbFontName.AddString(TEXT("SansSerif font - Courier New")); m_cmbFontName.AddString(TEXT("Pre-defined - Times New Roman")); m_cmbFontName.SetItemData(0, FONT_PROPORTSERIF); m_cmbFontName.SetItemData(1, FONT_PROPORTSANSSERIF); m_cmbFontName.SetItemData(2, FONT_MONOSERIF); m_cmbFontName.SetItemData(3, FONT_MONOSANSSERIF); m_cmbFontName.SetItemData(4, FONT_PREDEFFONT); m_cmbFontName.SetCurSel(4); CheckDlgButton(IDC_CHK_FONT_BOLD, m_pCharOpts->bBold); CheckDlgButton(IDC_CHK_FONT_ITALIC, m_pCharOpts->bItalic); CheckDlgButton(IDC_CHK_FONT_UNDERLINE, m_pCharOpts->bUnderline); SetDlgItemInt(IDC_EDIT_FONT_SIZE, m_pCharOpts->nSize); OnSelchangeCmbFontMode(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CCharacterOptions::OnSelchangeCmbFontMode() { L_BOOL bEnable = (m_cmbFontMode.GetItemData(m_cmbFontMode.GetCurSel()) == SEL_PREDEFINED); CWnd * pItemWnd = NULL; pItemWnd = GetDlgItem(IDC_CHK_FONT_BOLD); pItemWnd->EnableWindow(bEnable); pItemWnd = GetDlgItem(IDC_CHK_FONT_ITALIC); pItemWnd->EnableWindow(bEnable); pItemWnd = GetDlgItem(IDC_CHK_FONT_UNDERLINE); pItemWnd->EnableWindow(bEnable); pItemWnd = GetDlgItem(IDC_EDIT_FONT_SIZE); pItemWnd->EnableWindow(bEnable); } void CCharacterOptions::OnOK() { UpdateData(); m_pCharOpts->SelOutputFont = (SELECTOR)m_cmbFontMode.GetItemData(m_cmbFontMode.GetCurSel()); m_pCharOpts->bBold = m_bBold; m_pCharOpts->bItalic = m_bItalic; m_pCharOpts->bUnderline = m_bUnderLine; m_pCharOpts->nSize = m_nFontSize; L_INT nFontSel = m_cmbFontName.GetCurSel(); m_pCharOpts->FontNames[nFontSel] = (FONTDEFINE)m_cmbFontName.GetItemData(nFontSel); CDialog::OnOK(); }