// BarROpt.cpp : implementation file // #include "stdafx.h" #include "barcode.h" #include "BarROpt.h" #include "bar1D.h" #include "pdfread.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CBarReadOpt dialog CBarReadOpt::CBarReadOpt(CWnd* pParent /*=NULL*/, int nSymbolType /*=BAR_CODE_1D*/, RECT* prcSearch /*=NULL*/, int nMaxCount /*=0*/, long ulSearchType /*=0*/, CLEADBarCode *pLeadBar /*= NULL*/) : CDialog(CBarReadOpt::IDD, pParent) { int nDir = 0; //{{AFX_DATA_INIT(CBarReadOpt) m_nMultipleMax = nMaxCount; m_nMinLength = 3; m_nGranularity = 4; m_bType1 = FALSE; m_bType2 = FALSE; m_bType3 = FALSE; m_bType4 = FALSE; m_bType5 = FALSE; m_bType6 = FALSE; m_bType7 = FALSE; m_bType8 = FALSE; m_bDirTopToBtm = FALSE; m_bDirRightToLeft = FALSE; m_bDirLefToRight = FALSE; m_bDirBtmToTop = FALSE; m_bSearchAll = TRUE; m_bErrDigit = FALSE; m_bUseRgn = FALSE; m_bType9 = FALSE; m_bDirSkew = FALSE; m_bDirVert = FALSE; m_bDirHoriz = FALSE; m_bDirDiagonal = FALSE; m_nWhiteLines = 3; m_nUnits = BARCODE_SCANLINES_PER_PIXELS; m_bInit = FALSE; m_bType10 = FALSE; //}}AFX_DATA_INIT m_bUseColors = FALSE; m_dwBarColor = RGB(0, 0, 0); m_dwSpaceColor = RGB(255, 255, 255); if (prcSearch) { m_nStartX = prcSearch->left; m_nStartY = prcSearch->top; m_nWidth = prcSearch->right - prcSearch->left; m_nHeight = prcSearch->bottom - prcSearch->left; } else m_nWidth = m_nStartY = m_nStartX = m_nHeight = 0; m_nSymbolType = nSymbolType; if (pLeadBar) { m_bUseColors = pLeadBar->GetEnableUseColors(); m_dwBarColor = pLeadBar->GetBarColor(); m_dwSpaceColor = pLeadBar->GetSpaceColor(); m_bUseRgn = pLeadBar->GetEnableUseRegion(); m_nUnits = pLeadBar->GetUnits(); switch (m_nSymbolType) { case BAR_CODE_1D: m_bErrDigit = pLeadBar->GetLinear().GetEnableErrorCheck(); m_nGranularity = pLeadBar->GetLinear().GetGranularity(); m_nMinLength = pLeadBar->GetLinear().GetMinLength(); m_nWhiteLines = pLeadBar->GetLinear().GetWhiteLines(); nDir = pLeadBar->GetLinear().GetReadDirection(); if(nDir & BARCODE_DIR_RIGHT_TO_LEFT) m_bDirRightToLeft= TRUE; if(nDir & BARCODE_DIR_LEFT_TO_RIGHT) m_bDirLefToRight = TRUE; if(nDir & BARCODE_DIR_BOTTOM_TO_TOP) m_bDirBtmToTop = TRUE; if(nDir & BARCODE_DIR_TOP_TO_BOTTOM) m_bDirTopToBtm = TRUE; if(nDir & BARCODE_DIR_SKEW) m_bDirSkew = TRUE; if(nDir & BARCODE_DIR_HORIZONTAL) m_bDirHoriz = TRUE; if(nDir & BARCODE_DIR_VERTICAL) m_bDirVert = TRUE; if(nDir & BARCODE_DIR_DIAGONAL) m_bDirDiagonal = TRUE; if(ulSearchType == BARCODE_1D_READ_ANYTYPE) m_bSearchAll = TRUE; else { if(ulSearchType & BARCODE_1D_EAN_13) m_bType1 = TRUE; if(ulSearchType & BARCODE_1D_EAN_8) m_bType2 = TRUE; if(ulSearchType & BARCODE_1D_UPC_A) m_bType3 = TRUE; if(ulSearchType & BARCODE_1D_UPC_E) m_bType4 = TRUE; if(ulSearchType & BARCODE_1D_CODE_3_OF_9) m_bType5 = TRUE; if(ulSearchType & BARCODE_1D_CODE_128) m_bType6 = TRUE; if(ulSearchType & BARCODE_1D_CODE_I2_OF_5) m_bType7 = TRUE; if(ulSearchType & BARCODE_1D_CODA_BAR) m_bType8 = TRUE; if(ulSearchType & BARCODE_1D_UCCEAN_128) m_bType9 = TRUE; if(ulSearchType & BARCODE_1D_CODE_93) m_bType10 = TRUE; } break; case BAR_CODE_PDF: nDir = pLeadBar->GetPDFRead().GetDirection(); if(nDir & BARCODE_DIR_RIGHT_TO_LEFT) m_bDirRightToLeft= TRUE; if(nDir & BARCODE_DIR_LEFT_TO_RIGHT) m_bDirLefToRight = TRUE; if(nDir & BARCODE_DIR_BOTTOM_TO_TOP) m_bDirBtmToTop = TRUE; if(nDir & BARCODE_DIR_TOP_TO_BOTTOM) m_bDirTopToBtm = TRUE; if(nDir & BARCODE_DIR_SKEW) m_bDirSkew = TRUE; if(nDir & BARCODE_DIR_HORIZONTAL) m_bDirHoriz = TRUE; if(nDir & BARCODE_DIR_VERTICAL) m_bDirVert = TRUE; if(nDir & BARCODE_DIR_DIAGONAL) m_bDirDiagonal = TRUE; break; case BAR_CODE_DM: m_bSearchAll = TRUE; if(ulSearchType & BARCODE_DM_READ_SQUARE) m_bType1 = TRUE; if(ulSearchType & BARCODE_DM_READ_RECTANGLE) m_bType2 = TRUE; if(ulSearchType & BARCODE_DM_READ_SMALL) m_bType3 = TRUE; break; } } } void CBarReadOpt::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CBarReadOpt) DDX_Control(pDX, IDC_SEARCH_TYPE10, m_BtnType10); DDX_Control(pDX, IDC_WHITE_LINES, m_EditWhiteLines); DDX_Control(pDX, IDC_CHK_DIR_DIAGONAL, m_BtnDirDiagonal); DDX_Control(pDX, IDC_CHK_DIR_HORIZANTAL, m_BtnDirHoriz); DDX_Control(pDX, IDC_CHK_DIR_VERTICAL, m_BtnDirVert); DDX_Control(pDX, IDC_CHK_DIR_SKEW, m_BtnDirSkew); DDX_Control(pDX, IDC_SEARCH_TYPE9, m_BtnType9); DDX_Control(pDX, IDC_BAR_COLOR_DLG, m_BtnBarColor); DDX_Control(pDX, IDC_SPACE_COLOR_DLG, m_BtnSpaceColor); DDX_Control(pDX, IDC_CHK_USERGN, m_ChkUseRgn); DDX_Control(pDX, IDC_SEARCH_ANY, m_ChkSearchAll); DDX_Control(pDX, IDC_MULTIPLE_MAX, m_EditMultipleMax); DDX_Text(pDX, IDC_MULTIPLE_MAX, m_nMultipleMax); DDX_Control(pDX, IDC_LOC_WIDTH, m_EditWidth); DDX_Text(pDX, IDC_LOC_WIDTH, m_nWidth); DDX_Control(pDX, IDC_LOC_START_Y, m_EditStartY); DDX_Text(pDX, IDC_LOC_START_Y, m_nStartY); DDX_Control(pDX, IDC_LOC_START_X, m_EditStartX); DDX_Text(pDX, IDC_LOC_START_X, m_nStartX); DDX_Control(pDX, IDC_LOC_HEIGHT, m_EditHeight); DDX_Text(pDX, IDC_LOC_HEIGHT, m_nHeight); DDX_Control(pDX, IDC_MIN_LENGTH, m_EditMinLength); DDX_Text(pDX, IDC_MIN_LENGTH, m_nMinLength); DDV_MinMaxInt(pDX, m_nMinLength, 1, 63); DDX_Control(pDX, IDC_GRANULARITY, m_EditGranulaity); DDX_Text(pDX, IDC_GRANULARITY, m_nGranularity); DDV_MinMaxInt(pDX, m_nGranularity, 1, 256); DDX_Control(pDX, IDC_SEARCH_TYPE1, m_BtnType1); DDX_Check(pDX, IDC_SEARCH_TYPE1, m_bType1); DDX_Control(pDX, IDC_SEARCH_TYPE2, m_BtnType2); DDX_Check(pDX, IDC_SEARCH_TYPE2, m_bType2); DDX_Control(pDX, IDC_SEARCH_TYPE3, m_BtnType3); DDX_Check(pDX, IDC_SEARCH_TYPE3, m_bType3); DDX_Control(pDX, IDC_SEARCH_TYPE4, m_BtnType4); DDX_Check(pDX, IDC_SEARCH_TYPE4, m_bType4); DDX_Control(pDX, IDC_SEARCH_TYPE5, m_BtnType5); DDX_Check(pDX, IDC_SEARCH_TYPE5, m_bType5); DDX_Control(pDX, IDC_SEARCH_TYPE6, m_BtnType6); DDX_Check(pDX, IDC_SEARCH_TYPE6, m_bType6); DDX_Control(pDX, IDC_SEARCH_TYPE7, m_BtnType7); DDX_Check(pDX, IDC_SEARCH_TYPE7, m_bType7); DDX_Control(pDX, IDC_SEARCH_TYPE8, m_BtnType8); DDX_Check(pDX, IDC_SEARCH_TYPE8, m_bType8); DDX_Control(pDX, IDC_CHK_TOP_TO_BOTTOM, m_BtnDirTopToBtm); DDX_Check(pDX, IDC_CHK_TOP_TO_BOTTOM, m_bDirTopToBtm); DDX_Control(pDX, IDC_CHK_RIGHT_TO_LEFT, m_BtnDirRightToLeft); DDX_Check(pDX, IDC_CHK_RIGHT_TO_LEFT, m_bDirRightToLeft); DDX_Control(pDX, IDC_CHK_LEFT_TO_RIGHT, m_BtnDirLeftToRight); DDX_Check(pDX, IDC_CHK_LEFT_TO_RIGHT, m_bDirLefToRight); DDX_Control(pDX, IDC_CHK_ERR_DIGIT, m_BtnErrDigit); DDX_Control(pDX, IDC_CHK_BOTTOM_TO_TOP, m_BtnDirBtmToTop); DDX_Check(pDX, IDC_CHK_BOTTOM_TO_TOP, m_bDirBtmToTop); DDX_Control(pDX, IDC_SYMB_TYPE, m_CmbSymbolType); DDX_Control(pDX, IDC_UNITS, m_CmbUnits); DDX_Control(pDX, IDOK, m_BtnOk); DDX_Check(pDX, IDC_SEARCH_ANY, m_bSearchAll); DDX_Check(pDX, IDC_CHK_ERR_DIGIT, m_bErrDigit); DDX_Check(pDX, IDC_CHK_USERGN, m_bUseRgn); DDX_Check(pDX, IDC_USE_COLORS, m_bUseColors); DDX_Check(pDX, IDC_SEARCH_TYPE9, m_bType9); DDX_Check(pDX, IDC_CHK_DIR_SKEW, m_bDirSkew); DDX_Check(pDX, IDC_CHK_DIR_VERTICAL, m_bDirVert); DDX_Check(pDX, IDC_CHK_DIR_HORIZANTAL, m_bDirHoriz); DDX_Check(pDX, IDC_CHK_DIR_DIAGONAL, m_bDirDiagonal); DDX_Text(pDX, IDC_WHITE_LINES, m_nWhiteLines); DDX_Check(pDX, IDC_SEARCH_TYPE10, m_bType10); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CBarReadOpt, CDialog) //{{AFX_MSG_MAP(CBarReadOpt) ON_BN_CLICKED(IDC_SEARCH_ANY, OnSearchAllClick) ON_CBN_SELCHANGE(IDC_SYMB_TYPE, OnSelChangeSymbType) ON_EN_CHANGE(IDC_GRANULARITY, OnChangeGranularity) ON_EN_CHANGE(IDC_LOC_START_X, OnChangeLocStartX) ON_EN_CHANGE(IDC_LOC_START_Y, OnChangeLocStartY) ON_EN_CHANGE(IDC_LOC_WIDTH, OnChangeLocWidth) ON_EN_CHANGE(IDC_LOC_HEIGHT, OnChangeLocHeight) ON_EN_CHANGE(IDC_MIN_LENGTH, OnChangeMinLength) ON_EN_CHANGE(IDC_MULTIPLE_MAX, OnChangeMultipleMax) ON_BN_CLICKED(IDC_CHK_USERGN, OnChkUseRgn) ON_BN_CLICKED(IDC_BAR_COLOR_DLG, OnBarColorDlg) ON_BN_CLICKED(IDC_SPACE_COLOR_DLG, OnSpaceColorDlg) ON_BN_CLICKED(IDC_USE_COLORS, OnUseColors) ON_EN_CHANGE(IDC_WHITE_LINES, OnChangeWhiteLines) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CBarReadOpt message handlers BOOL CBarReadOpt::OnInitDialog() { CDialog::OnInitDialog(); m_CmbUnits.AddString("Scans/Pixels"); m_CmbUnits.AddString("Inches"); m_CmbUnits.AddString("MiliMeters"); m_CmbUnits.SetItemData(0, BARCODE_SCANLINES_PER_PIXELS); m_CmbUnits.SetItemData(1, BARCODE_INCHES); m_CmbUnits.SetItemData(2, BARCODE_MILLIMETERS); m_CmbUnits.SetCurSel(m_nUnits); m_CmbSymbolType.AddString("Bar Codes"); m_CmbSymbolType.AddString("PDF417"); m_CmbSymbolType.AddString("Data Matrix"); m_CmbSymbolType.AddString("QR"); m_CmbSymbolType.SetItemData(0, BAR_CODE_1D); m_CmbSymbolType.SetItemData(1, BAR_CODE_PDF); m_CmbSymbolType.SetItemData(2, BAR_CODE_DM); m_CmbSymbolType.SetItemData(3, BAR_CODE_QR); m_CmbSymbolType.SetCurSel(m_nSymbolType); m_BtnType1.SetWindowText("EAN 13"); m_BtnType2.SetWindowText("EAN 8"); m_BtnType3.SetWindowText("UPC A"); m_BtnType4.SetWindowText("UPC E"); m_BtnType5.SetWindowText("Code 3 of 9"); m_BtnType6.SetWindowText("Code 128"); m_BtnType7.SetWindowText("Code I 2 of 5"); m_BtnType8.SetWindowText("CODABAR"); m_BtnType9.SetWindowText("UCCEAN 128"); m_BtnType10.SetWindowText("Code 93"); m_bInit=TRUE; OnSearchAllClick(); OnSelChangeSymbType(); OnChkUseRgn(); OnUseColors(); m_bInit=FALSE; return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CBarReadOpt::OnSearchAllClick() { if(!m_bInit) m_bSearchAll = !m_bSearchAll; m_ChkSearchAll.SetCheck((m_bSearchAll) ? 1:0); m_BtnType1.EnableWindow(!m_bSearchAll); m_BtnType2.EnableWindow(!m_bSearchAll); m_BtnType3.EnableWindow(!m_bSearchAll); m_BtnType4.EnableWindow(!m_bSearchAll); m_BtnType5.EnableWindow(!m_bSearchAll); m_BtnType6.EnableWindow(!m_bSearchAll); m_BtnType7.EnableWindow(!m_bSearchAll); m_BtnType8.EnableWindow(!m_bSearchAll); m_BtnType9.EnableWindow(!m_bSearchAll); m_BtnType10.EnableWindow(!m_bSearchAll); } void CBarReadOpt::OnSelChangeSymbType() { DWORD dwSymbType = m_CmbSymbolType.GetItemData(m_CmbSymbolType.GetCurSel()); switch (dwSymbType) { case BAR_CODE_1D: m_BtnType1.ShowWindow(SW_SHOW); m_BtnType2.ShowWindow(SW_SHOW); m_BtnType3.ShowWindow(SW_SHOW); m_BtnType4.ShowWindow(SW_SHOW); m_BtnType5.ShowWindow(SW_SHOW); m_BtnType6.ShowWindow(SW_SHOW); m_BtnType7.ShowWindow(SW_SHOW); m_BtnType8.ShowWindow(SW_SHOW); m_BtnType9.ShowWindow(SW_SHOW); m_BtnType10.ShowWindow(SW_SHOW); m_BtnType1.SetWindowText("EAN 13"); m_BtnType2.SetWindowText("EAN 8"); m_BtnType3.SetWindowText("UPC A"); m_BtnType4.SetWindowText("UPC E"); m_BtnType5.SetWindowText("Code 3 of 9"); m_BtnType6.SetWindowText("Code 128"); m_BtnType7.SetWindowText("Code I 2 of 5"); m_BtnType8.SetWindowText("CODABAR"); m_BtnType9.SetWindowText("UCCEAN 128"); m_BtnType10.SetWindowText("Code 93"); m_BtnErrDigit.EnableWindow(); m_EditMinLength.EnableWindow(); m_EditGranulaity.EnableWindow(); m_EditWhiteLines.EnableWindow(); m_BtnDirLeftToRight.EnableWindow(); m_BtnDirRightToLeft.EnableWindow(); m_BtnDirTopToBtm.EnableWindow(); m_BtnDirBtmToTop.EnableWindow(); m_BtnDirVert.EnableWindow(); m_BtnDirSkew.EnableWindow(); m_BtnDirHoriz.EnableWindow(); m_BtnDirDiagonal.EnableWindow(); break; case BAR_CODE_DM: m_BtnType1.ShowWindow(SW_SHOW); m_BtnType2.ShowWindow(SW_SHOW); m_BtnType3.ShowWindow(SW_SHOW); m_BtnType4.ShowWindow(SW_HIDE); m_BtnType5.ShowWindow(SW_HIDE); m_BtnType6.ShowWindow(SW_HIDE); m_BtnType7.ShowWindow(SW_HIDE); m_BtnType8.ShowWindow(SW_HIDE); m_BtnType9.ShowWindow(SW_HIDE); m_BtnType10.ShowWindow(SW_HIDE); m_BtnType1.SetWindowText("Square"); m_BtnType2.SetWindowText("Rectangle"); m_BtnType3.SetWindowText("Small"); m_BtnErrDigit.EnableWindow(FALSE); m_EditMinLength.EnableWindow(FALSE); m_EditGranulaity.EnableWindow(FALSE); m_EditWhiteLines.EnableWindow(FALSE); m_BtnDirLeftToRight.EnableWindow(FALSE); m_BtnDirRightToLeft.EnableWindow(FALSE); m_BtnDirTopToBtm.EnableWindow(FALSE); m_BtnDirBtmToTop.EnableWindow(FALSE); m_BtnDirVert.EnableWindow(FALSE); m_BtnDirSkew.EnableWindow(FALSE); m_BtnDirHoriz.EnableWindow(FALSE); m_BtnDirDiagonal.EnableWindow(FALSE); break; case BAR_CODE_PDF: m_BtnType1.ShowWindow(SW_HIDE); m_BtnType2.ShowWindow(SW_HIDE); m_BtnType3.ShowWindow(SW_HIDE); m_BtnType4.ShowWindow(SW_HIDE); m_BtnType5.ShowWindow(SW_HIDE); m_BtnType6.ShowWindow(SW_HIDE); m_BtnType7.ShowWindow(SW_HIDE); m_BtnType8.ShowWindow(SW_HIDE); m_BtnType9.ShowWindow(SW_HIDE); m_BtnType10.ShowWindow(SW_HIDE); m_BtnErrDigit.EnableWindow(FALSE); m_EditMinLength.EnableWindow(FALSE); m_EditGranulaity.EnableWindow(FALSE); m_EditWhiteLines.EnableWindow(FALSE); m_BtnDirLeftToRight.EnableWindow(); m_BtnDirRightToLeft.EnableWindow(); m_BtnDirTopToBtm.EnableWindow(); m_BtnDirBtmToTop.EnableWindow(); m_BtnDirVert.EnableWindow(); m_BtnDirSkew.EnableWindow(); m_BtnDirHoriz.EnableWindow(); m_BtnDirDiagonal.EnableWindow(); break; case BAR_CODE_QR: m_BtnType1.ShowWindow(SW_HIDE); m_BtnType2.ShowWindow(SW_HIDE); m_BtnType3.ShowWindow(SW_HIDE); m_BtnType4.ShowWindow(SW_HIDE); m_BtnType5.ShowWindow(SW_HIDE); m_BtnType6.ShowWindow(SW_HIDE); m_BtnType7.ShowWindow(SW_HIDE); m_BtnType8.ShowWindow(SW_HIDE); m_BtnType9.ShowWindow(SW_HIDE); m_BtnType10.ShowWindow(SW_HIDE); m_BtnErrDigit.EnableWindow(FALSE); m_EditMinLength.EnableWindow(FALSE); m_EditGranulaity.EnableWindow(FALSE); m_EditWhiteLines.EnableWindow(FALSE); m_BtnDirLeftToRight.EnableWindow(FALSE); m_BtnDirRightToLeft.EnableWindow(FALSE); m_BtnDirTopToBtm.EnableWindow(FALSE); m_BtnDirBtmToTop.EnableWindow(FALSE); m_BtnDirVert.EnableWindow(FALSE); m_BtnDirSkew.EnableWindow(FALSE); m_BtnDirHoriz.EnableWindow(FALSE); m_BtnDirDiagonal.EnableWindow(FALSE); break; } } void CBarReadOpt::OnChangeGranularity() { m_BtnOk.EnableWindow(CheckOkBtnState()); } void CBarReadOpt::OnChangeLocStartX() { m_BtnOk.EnableWindow(CheckOkBtnState()); } void CBarReadOpt::OnChangeLocStartY() { m_BtnOk.EnableWindow(CheckOkBtnState()); } void CBarReadOpt::OnChangeLocWidth() { m_BtnOk.EnableWindow(CheckOkBtnState()); } void CBarReadOpt::OnChangeLocHeight() { m_BtnOk.EnableWindow(CheckOkBtnState()); } void CBarReadOpt::OnChangeMinLength() { m_BtnOk.EnableWindow(CheckOkBtnState()); } void CBarReadOpt::OnChangeMultipleMax() { m_BtnOk.EnableWindow(CheckOkBtnState()); } BOOL CBarReadOpt::CheckOkBtnState() { CString strMulltipleMax; CString strMinLen; CString strHeight; CString strWidth; CString strStartY; CString strStartX; CString strGranularity; CString strWhiteLines; m_EditMultipleMax.GetWindowText(strMulltipleMax); m_EditMinLength.GetWindowText(strMinLen); m_EditHeight.GetWindowText(strHeight); m_EditWidth.GetWindowText(strWidth); m_EditStartY.GetWindowText(strStartY); m_EditStartX.GetWindowText(strStartX); m_EditGranulaity.GetWindowText(strGranularity); m_EditWhiteLines.GetWindowText(strWhiteLines); if ((strMulltipleMax.IsEmpty()) || (strMinLen.IsEmpty()) || (strHeight.IsEmpty()) || (strWidth.IsEmpty()) || (strStartY.IsEmpty())|| (strStartX.IsEmpty())|| (strGranularity.IsEmpty()) || (strWhiteLines.IsEmpty())) return FALSE; else return TRUE; } void CBarReadOpt::OnOK() { m_nUnits = m_CmbUnits.GetItemData(m_CmbUnits.GetCurSel()); m_nSymbolType = m_CmbSymbolType.GetItemData(m_CmbSymbolType.GetCurSel()); CDialog::OnOK(); } void CBarReadOpt::OnChkUseRgn() { if(!m_bInit) m_bUseRgn = !m_bUseRgn; m_ChkUseRgn.SetCheck((m_bUseRgn) ? 1:0); m_EditHeight.EnableWindow(!m_bUseRgn); m_EditWidth.EnableWindow(!m_bUseRgn); m_EditStartY.EnableWindow(!m_bUseRgn); m_EditStartX.EnableWindow(!m_bUseRgn); } void CBarReadOpt::OnBarColorDlg() { CColorDialog ccDlg(m_dwBarColor, CC_RGBINIT, this); if (ccDlg.DoModal() == IDOK) m_dwBarColor = ccDlg.GetColor(); } void CBarReadOpt::OnSpaceColorDlg() { CColorDialog ccDlg(m_dwSpaceColor, CC_RGBINIT, this); if (ccDlg.DoModal() == IDOK) m_dwSpaceColor = ccDlg.GetColor(); } void CBarReadOpt::OnUseColors() { if (!m_bInit) m_bUseColors = !m_bUseColors; m_BtnBarColor.EnableWindow(m_bUseColors); m_BtnSpaceColor.EnableWindow(m_bUseColors); } void CBarReadOpt::OnChangeWhiteLines() { m_BtnOk.EnableWindow(CheckOkBtnState()); }