/*[]=====================================================================[]*/ /*[] LeadTools Run Time Library - Version 14 []*/ /*[] []*/ /*[] []*/ /*[] Copyright (c) 1991-2004 LEAD Technologies, Inc. []*/ /*[] All Rights Reserved. []*/ /*[]=====================================================================[]*/ /*------------------------------------------------------------------------- We have made the assumption that the user has the knowledge of programming in C and Windows. --------------------------------------------------------------------------*/ #include "ImgConVw.h" DISPMAGACTIONPROPS MagProp; static L_BOOL MagDlg_OnCommand (HWND hWnd, L_INT nID, HWND hWndCtl, L_UINT uCodeNotify); static L_BOOL MagDlg_OnInitDialog (HWND hWnd, HWND hWndFocus, LPARAM lParam); static L_BOOL MagDlg_OnPaint (HWND hWnd); L_BOOL CALLBACK MagDlgProc (HWND hWnd, L_UINT uMessage, WPARAM wParam, LPARAM lParam) { switch(uMessage) { HANDLE_MSG (hWnd, WM_COMMAND, MagDlg_OnCommand); HANDLE_MSG (hWnd, WM_INITDIALOG, MagDlg_OnInitDialog); HANDLE_MSG (hWnd, WM_PAINT, MagDlg_OnPaint); } return FALSE; } static L_BOOL MagDlg_OnPaint (HWND hWnd) { HDC hDC; PAINTSTRUCT ps; HBRUSH hBrush; RECT rcRect; GetClientRect(GetDlgItem(hWnd, IDC_MAGACTION_PENCLR_TXT), &rcRect); hDC = BeginPaint(GetDlgItem(hWnd, IDC_MAGACTION_PENCLR_TXT), &ps); hBrush = CreateSolidBrush(MagProp.clrPen); FillRect(hDC, &rcRect, hBrush); DeleteBrush(hBrush); EndPaint(GetDlgItem(hWnd, IDC_MAGACTION_PENCLR_TXT), &ps); return TRUE; } static L_BOOL MagDlg_OnInitDialog (HWND hWnd, HWND hWndFocus, LPARAM lParam) { HDISPCONTAINER hCon = (HDISPCONTAINER)lParam; MoveDialogToMiddle(hWnd); SetWindowLong(hWnd, GWL_USERDATA, (long)lParam); MagProp.DispContainerActionProps.uStructSize = sizeof(DISPMAGACTIONPROPS); L_DispContainerGetActionProperties(hCon, CONTAINER_ACTION_MAG, 0, 0, (LONG)&MagProp, CONTAINER_ACTION_CONTAINERLEVEL); Button_SetCheck(GetDlgItem(hWnd, IDC_MAGACTION_3D_CHK), MagProp.b3D); Button_SetCheck(GetDlgItem(hWnd, IDC_MAGACTION_ELPS_CHK), MagProp.bEllipse); SetDlgItemInt(hWnd, IDC_MAGACTION_BORDER_EDT, MagProp.nBorderSize, FALSE); SetDlgItemInt(hWnd, IDC_MAGACTION_HEIGHT_EDT, MagProp.nHeight, FALSE); SetDlgItemInt(hWnd, IDC_MAGACTION_WIDTH_EDT, MagProp.nWidth, FALSE); SetDlgItemInt(hWnd, IDC_MAGACTION_ZOOM_EDT, MagProp.nZoom, FALSE); SetNumericEditBox(GetDlgItem(hWnd, IDC_MAGACTION_BORDER_EDT), 0, 10, 1, 0, FALSE); SetNumericEditBox(GetDlgItem(hWnd, IDC_MAGACTION_HEIGHT_EDT), 1, 1000, 1, 0, FALSE); SetNumericEditBox(GetDlgItem(hWnd, IDC_MAGACTION_WIDTH_EDT), 1, 1000, 1, 0, FALSE); SetNumericEditBox(GetDlgItem(hWnd, IDC_MAGACTION_ZOOM_EDT), 1, 1000, 1, 0, FALSE); ComboBox_AddString(GetDlgItem(hWnd, IDC_MAGACTION_CROS_COM), TEXT("None")); ComboBox_AddString(GetDlgItem(hWnd, IDC_MAGACTION_CROS_COM), TEXT("Fine")); ComboBox_AddString(GetDlgItem(hWnd, IDC_MAGACTION_CROS_COM), TEXT("Invert Pen")); ComboBox_AddString(GetDlgItem(hWnd, IDC_MAGACTION_CROS_COM), TEXT("Invert Screen")); ComboBox_SetCurSel(GetDlgItem(hWnd, IDC_MAGACTION_CROS_COM), MagProp.nCrosshair); return TRUE; } static L_BOOL MagDlg_OnCommand (HWND hWnd, L_INT nID, HWND hWndCtl, L_UINT uCodeNotify) { HDISPCONTAINER hCon = (HDISPCONTAINER)GetWindowLong(hWnd, GWL_USERDATA); switch(nID) { case IDC_MAGACTION_ELPS_CHK: EnableWindow(GetDlgItem(hWnd, IDC_MAGACTION_3D_CHK), !Button_GetCheck(hWndCtl)); break; case IDC_MAGACTION_PENCLR_BTN: { COLORREF crColor = MagProp.clrPen; MagProp.clrPen = ShowColorDialog(hWnd, crColor); InvalidateRect(hWnd, NULL, FALSE); } break; case IDAPPLY: case IDOK: MagProp.b3D = Button_GetCheck(GetDlgItem(hWnd, IDC_MAGACTION_3D_CHK)); MagProp.bEllipse = Button_GetCheck(GetDlgItem(hWnd, IDC_MAGACTION_ELPS_CHK)); MagProp.nBorderSize = GetDlgItemInt(hWnd, IDC_MAGACTION_BORDER_EDT, NULL, FALSE); MagProp.nHeight = max(100, GetDlgItemInt(hWnd, IDC_MAGACTION_HEIGHT_EDT, NULL, FALSE)); MagProp.nWidth = max(100, GetDlgItemInt(hWnd, IDC_MAGACTION_WIDTH_EDT, NULL, FALSE)); MagProp.nZoom = max(100, GetDlgItemInt(hWnd, IDC_MAGACTION_ZOOM_EDT, NULL, FALSE)); MagProp.nCrosshair = ComboBox_GetCurSel(GetDlgItem(hWnd, IDC_MAGACTION_CROS_COM)); MagProp.DispContainerActionProps.uStructSize = sizeof(DISPMAGACTIONPROPS); L_DispContainerSetActionProperties(hCon, CONTAINER_ACTION_MAG, 0, 0, (LONG)&MagProp, CONTAINER_ACTION_CONTAINERLEVEL); if (nID == IDAPPLY) break; EndDialog(hWnd, 1); break; case IDCANCEL: EndDialog(hWnd, 0); break; } return TRUE; }