// BmpRect.cpp : implementation file // #include "stdafx.h" #include "LTPntDC.h" #include "BmpRect.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CBmpRect dialog CBmpRect::CBmpRect(CWnd* pParent /*= NULL*/, LPBMPRECTDLGDATA lpBmpRectDlgData /*= NULL*/) : CDialog(CBmpRect::IDD, pParent) { //{{AFX_DATA_INIT(CBmpRect) m_iSrcLeft = lpBmpRectDlgData->srcRect.left; m_iSrcTop = lpBmpRectDlgData->srcRect.top; m_iSrcRight = lpBmpRectDlgData->srcRect.right; m_iSrcBottom = lpBmpRectDlgData->srcRect.bottom; m_iSrcClipBottom = lpBmpRectDlgData->srcClipRect.bottom; m_iSrcClipLeft = lpBmpRectDlgData->srcClipRect.left; m_iSrcClipRight = lpBmpRectDlgData->srcClipRect.right; m_iSrcClipTop = lpBmpRectDlgData->srcClipRect.top; m_iDestLeft = lpBmpRectDlgData->dstRect.left; m_iDestTop = lpBmpRectDlgData->dstRect.top; m_iDestRight = lpBmpRectDlgData->dstRect.right; m_iDestBottom = lpBmpRectDlgData->dstRect.bottom; m_iDestClipLeft = lpBmpRectDlgData->dstClipRect.left; m_iDestClipTop = lpBmpRectDlgData->dstClipRect.top; m_iDestClipRight = lpBmpRectDlgData->dstClipRect.right; m_iDestClipBottom = lpBmpRectDlgData->dstClipRect.bottom; m_strWidth = IntToText(lpBmpRectDlgData->Dimensions.x); m_strHeight = IntToText(lpBmpRectDlgData->Dimensions.y); //}}AFX_DATA_INIT m_lpBmpRectDlgData = lpBmpRectDlgData; } void CBmpRect::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CBmpRect) DDX_Control(pDX, IDC_WINDOWERASE, m_ctrlWindowErase); DDX_Control(pDX, IDC_NEWERASE, m_ctrlNewErase); DDX_Control(pDX, IDC_DISP_NORMAL, m_ctrlDispNormal); DDX_Control(pDX, IDC_DISP_SCALETOGRAY, m_ctrlDispScaleToGray); DDX_Control(pDX, IDC_DISP_FAVORBLACK, m_ctrlDispFavorBlack); DDX_Text(pDX, IDC_DESTBOTTOM, m_iDestBottom); DDX_Text(pDX, IDC_DESTCLIPBOTTOM, m_iDestClipBottom); DDX_Text(pDX, IDC_DESTCLIPLEFT, m_iDestClipLeft); DDX_Text(pDX, IDC_DESTCLIPRIGHT, m_iDestClipRight); DDX_Text(pDX, IDC_DESTCLIPTOP, m_iDestClipTop); DDX_Text(pDX, IDC_DESTLEFT, m_iDestLeft); DDX_Text(pDX, IDC_DESTRIGHT, m_iDestRight); DDX_Text(pDX, IDC_DESTTOP, m_iDestTop); DDX_Text(pDX, IDC_HEIGHT, m_strHeight); DDX_Text(pDX, IDC_SRCBOTTOM, m_iSrcBottom); DDX_Text(pDX, IDC_SRCCLIPBOTTOM, m_iSrcClipBottom); DDX_Text(pDX, IDC_SRCCLIPLEFT, m_iSrcClipLeft); DDX_Text(pDX, IDC_SRCCLIPRIGHT, m_iSrcClipRight); DDX_Text(pDX, IDC_SRCCLIPTOP, m_iSrcClipTop); DDX_Text(pDX, IDC_SRCLEFT, m_iSrcLeft); DDX_Text(pDX, IDC_SRCRIGHT, m_iSrcRight); DDX_Text(pDX, IDC_SRCTOP, m_iSrcTop); DDX_Text(pDX, IDC_WIDTH, m_strWidth); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CBmpRect, CDialog) //{{AFX_MSG_MAP(CBmpRect) ON_BN_CLICKED(IDC_DISP_NORMAL, OnDispNormal) ON_BN_CLICKED(IDC_DISP_SCALETOGRAY, OnDispScaletogray) ON_BN_CLICKED(IDC_DISP_FAVORBLACK, OnDispFavorblack) ON_BN_CLICKED(IDC_NEWERASE, OnNewerase) ON_BN_CLICKED(IDC_WINDOWERASE, OnWindowerase) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CBmpRect message handlers BOOL CBmpRect::OnInitDialog() { CDialog::OnInitDialog(); if(m_lpBmpRectDlgData->iBitsPP == 1) { // Disable 1 Bit Display Mode section m_ctrlDispNormal.SetCheck(m_lpBmpRectDlgData->uDISPLAYMODE == DISPLAYMODE_ORDEREDDITHER); m_ctrlDispScaleToGray.SetCheck(m_lpBmpRectDlgData->uDISPLAYMODE == DISPLAYMODE_SCALETOGRAY); m_ctrlDispFavorBlack.SetCheck(m_lpBmpRectDlgData->uDISPLAYMODE == DISPLAYMODE_FAVORBLACK); } else { // Enable 1 Bit Display Mode section m_ctrlDispNormal.EnableWindow(FALSE); m_ctrlDispScaleToGray.EnableWindow(FALSE); m_ctrlDispFavorBlack.EnableWindow(FALSE); } // Set or remove checks from both check boxes m_ctrlNewErase.SetCheck(m_lpBmpRectDlgData->OTHEROPTION1 == OTHER_ERASENEWPAINTRGN); m_ctrlWindowErase.SetCheck(m_lpBmpRectDlgData->OTHEROPTION2 == OTHER_ERASEWINDOW); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CBmpRect::OnDispNormal() { m_lpBmpRectDlgData->uDISPLAYMODE = DISPLAYMODE_ORDEREDDITHER; m_ctrlDispNormal.SetCheck(1); } void CBmpRect::OnDispScaletogray() { m_lpBmpRectDlgData->uDISPLAYMODE = DISPLAYMODE_SCALETOGRAY; m_ctrlDispScaleToGray.SetCheck(1); } void CBmpRect::OnDispFavorblack() { m_lpBmpRectDlgData->uDISPLAYMODE = DISPLAYMODE_FAVORBLACK; m_ctrlDispFavorBlack.SetCheck(1); } void CBmpRect::OnNewerase() { m_lpBmpRectDlgData->OTHEROPTION1 == OTHER_ERASENEWPAINTRGN ? m_lpBmpRectDlgData->OTHEROPTION1 = OTHER_NONE : m_lpBmpRectDlgData->OTHEROPTION1 = OTHER_ERASENEWPAINTRGN; m_ctrlNewErase.SetCheck(m_lpBmpRectDlgData->OTHEROPTION1); } void CBmpRect::OnWindowerase() { m_lpBmpRectDlgData->OTHEROPTION2 == OTHER_ERASEWINDOW ? m_lpBmpRectDlgData->OTHEROPTION2 = OTHER_NONE : m_lpBmpRectDlgData->OTHEROPTION2 = OTHER_ERASEWINDOW; m_ctrlWindowErase.SetCheck(m_lpBmpRectDlgData->OTHEROPTION2); } void CBmpRect::OnOK() { UpdateData(TRUE); m_lpBmpRectDlgData->srcRect.left = m_iSrcLeft; m_lpBmpRectDlgData->srcRect.top = m_iSrcTop; m_lpBmpRectDlgData->srcRect.right = m_iSrcRight; m_lpBmpRectDlgData->srcRect.bottom = m_iSrcBottom; m_lpBmpRectDlgData->srcClipRect.bottom = m_iSrcClipBottom; m_lpBmpRectDlgData->srcClipRect.left = m_iSrcClipLeft; m_lpBmpRectDlgData->srcClipRect.right = m_iSrcClipRight; m_lpBmpRectDlgData->srcClipRect.top = m_iSrcClipTop; m_lpBmpRectDlgData->dstRect.left = m_iDestLeft; m_lpBmpRectDlgData->dstRect.top = m_iDestTop; m_lpBmpRectDlgData->dstRect.right = m_iDestRight; m_lpBmpRectDlgData->dstRect.bottom = m_iDestBottom; m_lpBmpRectDlgData->dstClipRect.left = m_iDestClipLeft; m_lpBmpRectDlgData->dstClipRect.top = m_iDestClipTop; m_lpBmpRectDlgData->dstClipRect.right = m_iDestClipRight; m_lpBmpRectDlgData->dstClipRect.bottom = m_iDestClipBottom; CDialog::OnOK(); } /*+----------------------------------------------------+ | Operation : Convert integer to text | | | | Parameter : - iInteger (Integer to be converted) | +----------------------------------------------------+*/ CString CBmpRect::IntToText(L_INT iInteger) { L_CHAR szbuffer[10]; memset(szbuffer, 0, sizeof(szbuffer)); _itoa(iInteger, szbuffer, 10); CString strFromInt(szbuffer); return strFromInt; }