/*[]=====================================================================[]*/ /*[] 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" DISPCONTAINERPROPERTIES DispContainerProp; static L_BOOL ContainerDlg_OnCommand (HWND hWnd, L_INT nID, HWND hWndCtl, L_UINT codeNotify); static L_BOOL ContainerDlg_OnInitDialog (HWND hWnd, HWND hWndFocus, LPARAM lParam); static L_VOID ContainerDlg_OnPaint (HWND hWnd); L_BOOL CALLBACK ContainerDlgProc (HWND hWnd, L_UINT uMessage, WPARAM wParam, LPARAM lParam) { switch(uMessage) { HANDLE_MSG (hWnd, WM_COMMAND, ContainerDlg_OnCommand); HANDLE_MSG (hWnd, WM_INITDIALOG, ContainerDlg_OnInitDialog); HANDLE_MSG (hWnd, WM_PAINT, ContainerDlg_OnPaint); } return FALSE; } static L_BOOL ContainerDlg_OnInitDialog(HWND hWnd, HWND hWndFocus, LPARAM lParam) { HDISPCONTAINER hCon = (HDISPCONTAINER)lParam; MoveDialogToMiddle(hWnd); SetWindowLong(hWnd, GWL_USERDATA, (long)lParam); DispContainerProp.uMask = DCPF_ALL; DispContainerProp.uStructSize = sizeof(DISPCONTAINERPROPERTIES); L_DispContainerGetProperties(hCon, &DispContainerProp, 0); SetDlgItemInt(hWnd, IDC_CONPROP_ROWS_EDT, DispContainerProp.uNumRows, FALSE); SetDlgItemInt(hWnd, IDC_CONPROP_COLS_EDT, DispContainerProp.uNumCols, FALSE); SendMessage(GetDlgItem(hWnd, IDC_CONPROP_DEF_BTN), BM_SETIMAGE , IMAGE_CURSOR, (LPARAM)(HCURSOR)((DispContainerProp.hDefaultCursor) ? DispContainerProp.hDefaultCursor : LoadCursor(NULL, IDC_ARROW))); SendMessage(GetDlgItem(hWnd, IDC_CONPROP_HORZ_BTN), BM_SETIMAGE , IMAGE_CURSOR, (LPARAM)(HCURSOR)((DispContainerProp.hRszHorzCursor) ? DispContainerProp.hRszHorzCursor : LoadCursor(NULL, IDC_SIZEWE))); SendMessage(GetDlgItem(hWnd, IDC_CONPROP_VERT_BTN), BM_SETIMAGE , IMAGE_CURSOR, (LPARAM)(HCURSOR)((DispContainerProp.hRszVertCursor) ? DispContainerProp.hRszVertCursor : LoadCursor(NULL, IDC_SIZENS))); SendMessage(GetDlgItem(hWnd, IDC_CONPROP_ALL_BTN), BM_SETIMAGE , IMAGE_CURSOR, (LPARAM)(HCURSOR)((DispContainerProp.hRszBothCursor) ? DispContainerProp.hRszBothCursor : LoadCursor(NULL, IDC_SIZEALL))); ComboBox_AddString(GetDlgItem(hWnd, IDC_CONPROP_TEXTQUALITY_COM), TEXT("Default quality")); ComboBox_AddString(GetDlgItem(hWnd, IDC_CONPROP_TEXTQUALITY_COM), TEXT("Draft quality")); ComboBox_AddString(GetDlgItem(hWnd, IDC_CONPROP_TEXTQUALITY_COM), TEXT("Proof quality")); ComboBox_AddString(GetDlgItem(hWnd, IDC_CONPROP_TEXTQUALITY_COM), TEXT("Force draft")); ComboBox_AddString(GetDlgItem(hWnd, IDC_CONPROP_TEXTQUALITY_COM), TEXT("Force Anti-aliasing")); ComboBox_SetCurSel(GetDlgItem(hWnd, IDC_CONPROP_TEXTQUALITY_COM), DispContainerProp.uTextQuality); ComboBox_AddString(GetDlgItem(hWnd, IDC_CONPROP_BORDERSTYLE_COM), TEXT("Solid")); ComboBox_AddString(GetDlgItem(hWnd, IDC_CONPROP_BORDERSTYLE_COM), TEXT("Dashed")); ComboBox_AddString(GetDlgItem(hWnd, IDC_CONPROP_BORDERSTYLE_COM), TEXT("Dotted")); ComboBox_AddString(GetDlgItem(hWnd, IDC_CONPROP_BORDERSTYLE_COM), TEXT("Dash-Dot")); ComboBox_AddString(GetDlgItem(hWnd, IDC_CONPROP_BORDERSTYLE_COM), TEXT("Dash-Dot-Dot")); ComboBox_SetCurSel(GetDlgItem(hWnd, IDC_CONPROP_BORDERSTYLE_COM), DispContainerProp.uBorderStyle); ComboBox_AddString(GetDlgItem(hWnd, IDC_CONPROP_RULERSTYLE_COM), TEXT("Inverted")); ComboBox_AddString(GetDlgItem(hWnd, IDC_CONPROP_RULERSTYLE_COM), TEXT("Bordered")); ComboBox_SetCurSel(GetDlgItem(hWnd, IDC_CONPROP_RULERSTYLE_COM), DispContainerProp.uRulerStyle); Button_SetCheck(GetDlgItem(hWnd, IDC_CONPROP_MNTNSIZE_CHK), !DispContainerProp.uCellsMaintenance); Button_SetCheck(GetDlgItem(hWnd, IDC_CONPROP_FRZ_CHK), DispContainerProp.bShowFreezeText); SetNumericEditBox(GetDlgItem(hWnd, IDC_CONPROP_ROWS_EDT), 1, 4, 1, 0, 0); SetNumericEditBox(GetDlgItem(hWnd, IDC_CONPROP_COLS_EDT), 1, 8, 1, 0, 0); ShowWindow(hWnd, SW_SHOW); return TRUE; } static L_VOID ContainerDlg_OnPaint (HWND hWnd) { PAINTSTRUCT ps; HDC hDC; RECT rcRect; HBRUSH hBrush; hDC = BeginPaint(GetDlgItem(hWnd, IDC_CONPROP_BACKGROUND_TXT), &ps); hBrush = CreateSolidBrush(DispContainerProp.crBackground); GetClientRect(GetDlgItem(hWnd, IDC_CONPROP_BACKGROUND_TXT), &rcRect); FillRect(hDC, &rcRect, hBrush); DeleteBrush(hBrush); EndPaint(GetDlgItem(hWnd, IDC_CONPROP_BACKGROUND_TXT), &ps); hDC = BeginPaint(GetDlgItem(hWnd, IDC_CONPROP_TEXT_TXT), &ps); hBrush = CreateSolidBrush(DispContainerProp.crText); GetClientRect(GetDlgItem(hWnd, IDC_CONPROP_TEXT_TXT), &rcRect); FillRect(hDC, &rcRect, hBrush); DeleteBrush(hBrush); EndPaint(GetDlgItem(hWnd, IDC_CONPROP_TEXT_TXT), &ps); hDC = BeginPaint(GetDlgItem(hWnd, IDC_CONPROP_SHADOW_TXT), &ps); hBrush = CreateSolidBrush(DispContainerProp.crShadow); GetClientRect(GetDlgItem(hWnd, IDC_CONPROP_SHADOW_TXT), &rcRect); FillRect(hDC, &rcRect, hBrush); DeleteBrush(hBrush); EndPaint(GetDlgItem(hWnd, IDC_CONPROP_SHADOW_TXT), &ps); hDC = BeginPaint(GetDlgItem(hWnd, IDC_CONPROP_RULERIN_TXT), &ps); hBrush = CreateSolidBrush(DispContainerProp.crRulerIn); GetClientRect(GetDlgItem(hWnd, IDC_CONPROP_RULERIN_TXT), &rcRect); FillRect(hDC, &rcRect, hBrush); DeleteBrush(hBrush); EndPaint(GetDlgItem(hWnd, IDC_CONPROP_RULERIN_TXT), &ps); hDC = BeginPaint(GetDlgItem(hWnd, IDC_CONPROP_RULEROUT_TXT), &ps); hBrush = CreateSolidBrush(DispContainerProp.crRulerout); GetClientRect(GetDlgItem(hWnd, IDC_CONPROP_RULEROUT_TXT), &rcRect); FillRect(hDC, &rcRect, hBrush); DeleteBrush(hBrush); EndPaint(GetDlgItem(hWnd, IDC_CONPROP_RULEROUT_TXT), &ps); hDC = BeginPaint(GetDlgItem(hWnd, IDC_CONPROP_EMPTY_TXT), &ps); hBrush = CreateSolidBrush(DispContainerProp.crEmptyCellBackGroundColor); GetClientRect(GetDlgItem(hWnd, IDC_CONPROP_EMPTY_TXT), &rcRect); FillRect(hDC, &rcRect, hBrush); DeleteBrush(hBrush); EndPaint(GetDlgItem(hWnd, IDC_CONPROP_EMPTY_TXT), &ps); hDC = BeginPaint(GetDlgItem(hWnd, IDC_CONPROP_ACTIVEBORDER_TXT), &ps); hBrush = CreateSolidBrush(DispContainerProp.crActiveBorderColor); GetClientRect(GetDlgItem(hWnd, IDC_CONPROP_ACTIVEBORDER_TXT), &rcRect); FillRect(hDC, &rcRect, hBrush); DeleteBrush(hBrush); EndPaint(GetDlgItem(hWnd, IDC_CONPROP_ACTIVEBORDER_TXT), &ps); hDC = BeginPaint(GetDlgItem(hWnd, IDC_CONPROP_NONACTIVE_TXT), &ps); hBrush = CreateSolidBrush(DispContainerProp.crNonActiveBorderColor); GetClientRect(GetDlgItem(hWnd, IDC_CONPROP_NONACTIVE_TXT), &rcRect); FillRect(hDC, &rcRect, hBrush); DeleteBrush(hBrush); EndPaint(GetDlgItem(hWnd, IDC_CONPROP_NONACTIVE_TXT), &ps); hDC = BeginPaint(GetDlgItem(hWnd, IDC_CONPROP_ACTIVESUBCELLBORDER_TXT), &ps); hBrush = CreateSolidBrush(DispContainerProp.crActiveSubCellBorderColor); GetClientRect(GetDlgItem(hWnd, IDC_CONPROP_ACTIVESUBCELLBORDER_TXT), &rcRect); FillRect(hDC, &rcRect, hBrush); DeleteBrush(hBrush); EndPaint(GetDlgItem(hWnd, IDC_CONPROP_ACTIVESUBCELLBORDER_TXT), &ps); } static L_BOOL ContainerDlg_OnCommand (HWND hWnd, L_INT nID, HWND hWndCtl, L_UINT codeNotify) { HDISPCONTAINER hCon = (HDISPCONTAINER)GetWindowLong(hWnd, GWL_USERDATA); COLORREF crColor; DispContainerProp.uMask = DCPF_ALL; DispContainerProp.uStructSize = sizeof(DISPCONTAINERPROPERTIES); switch(nID) { case IDRESET: DispContainerProp.uMask = DCPF_ALL; DispContainerProp.uStructSize = sizeof(DISPCONTAINERPROPERTIES); DispContainerProp.uNumRows = 1; SetDlgItemInt(hWnd, IDC_CONPROP_ROWS_EDT, 1, FALSE); DispContainerProp.uNumCols = 2; SetDlgItemInt(hWnd, IDC_CONPROP_COLS_EDT, 2, FALSE); DispContainerProp.hDefaultCursor = LoadCursor(NULL, IDC_ARROW); DispContainerProp.hRszHorzCursor = LoadCursor(NULL, IDC_SIZEWE); DispContainerProp.hRszVertCursor = LoadCursor(NULL, IDC_SIZENS); DispContainerProp.hRszBothCursor = LoadCursor(NULL, IDC_SIZEALL); SendMessage(GetDlgItem(hWnd, IDC_CONPROP_DEF_BTN), BM_SETIMAGE , IMAGE_CURSOR, (LPARAM)(HCURSOR)((DispContainerProp.hDefaultCursor) ? DispContainerProp.hDefaultCursor : LoadCursor(NULL, IDC_ARROW))); SendMessage(GetDlgItem(hWnd, IDC_CONPROP_HORZ_BTN), BM_SETIMAGE , IMAGE_CURSOR, (LPARAM)(HCURSOR)((DispContainerProp.hRszHorzCursor) ? DispContainerProp.hRszHorzCursor : LoadCursor(NULL, IDC_SIZEWE))); SendMessage(GetDlgItem(hWnd, IDC_CONPROP_VERT_BTN), BM_SETIMAGE , IMAGE_CURSOR, (LPARAM)(HCURSOR)((DispContainerProp.hRszVertCursor) ? DispContainerProp.hRszVertCursor : LoadCursor(NULL, IDC_SIZENS))); SendMessage(GetDlgItem(hWnd, IDC_CONPROP_ALL_BTN), BM_SETIMAGE , IMAGE_CURSOR, (LPARAM)(HCURSOR)((DispContainerProp.hRszBothCursor) ? DispContainerProp.hRszBothCursor : LoadCursor(NULL, IDC_SIZEALL))); ComboBox_SetCurSel(GetDlgItem(hWnd, IDC_CONPROP_TEXTQUALITY_COM), 0); DispContainerProp.uTextQuality = 0; ComboBox_SetCurSel(GetDlgItem(hWnd, IDC_CONPROP_BORDERSTYLE_COM), 2); DispContainerProp.uBorderStyle = PS_DOT; ComboBox_SetCurSel(GetDlgItem(hWnd, IDC_CONPROP_RULERSTYLE_COM), 0); DispContainerProp.uRulerStyle = DCPF_RULERSTYLE_INVERT; DispContainerProp.crActiveBorderColor = RGB(255, 192, 0); DispContainerProp.crActiveSubCellBorderColor = RGB(255, 255, 0); DispContainerProp.crBackground = RGB(0, 0, 0); DispContainerProp.crEmptyCellBackGroundColor = RGB(0, 0, 0); DispContainerProp.crNonActiveBorderColor = RGB(255, 255, 255); DispContainerProp.crRulerIn = RGB(255, 255, 255); DispContainerProp.crRulerout = RGB(0, 0, 255); DispContainerProp.crText = RGB(255, 255, 255); DispContainerProp.crShadow = RGB(0, 0, 0); InvalidateRect(hWnd, NULL, FALSE); Button_SetCheck(GetDlgItem(hWnd, IDC_CONPROP_MNTNSIZE_CHK), TRUE); DispContainerProp.uCellsMaintenance = DCPF_CELLSMAINTENANCE_SIZE; Button_SetCheck(GetDlgItem(hWnd, IDC_CONPROP_FRZ_CHK), TRUE); DispContainerProp.bShowFreezeText = TRUE; L_DispContainerSetProperties(hCon, &DispContainerProp, 0); break; case IDC_CONPROP_BORDERSTYLE_COM: DispContainerProp.uBorderStyle = ComboBox_GetCurSel(hWndCtl); break; case IDC_CONPROP_RULERSTYLE_COM: DispContainerProp.uRulerStyle = ComboBox_GetCurSel(hWndCtl); break; case IDC_CONPROP_ACTIVESUBCELLBORDER_BTN: crColor = DispContainerProp.crActiveSubCellBorderColor; DispContainerProp.crActiveSubCellBorderColor = ShowColorDialog(hWnd, crColor); InvalidateRect(hWnd, NULL, FALSE); break; case IDC_CONPROP_EMPTY_BTN: crColor = DispContainerProp.crEmptyCellBackGroundColor; DispContainerProp.crEmptyCellBackGroundColor = ShowColorDialog(hWnd, crColor); InvalidateRect(hWnd, NULL, FALSE); break; case IDC_CONPROP_TEXT_BTN: crColor = DispContainerProp.crText; DispContainerProp.crText = ShowColorDialog(hWnd, crColor); InvalidateRect(hWnd, NULL, FALSE); break; case IDC_CONPROP_SHADOW_BTN: crColor = DispContainerProp.crShadow; DispContainerProp.crShadow = ShowColorDialog(hWnd, crColor); InvalidateRect(hWnd, NULL, FALSE); break; case IDC_CONPROP_ACTIVEBORDER_BTN: crColor = DispContainerProp.crActiveBorderColor; DispContainerProp.crActiveBorderColor = ShowColorDialog(hWnd, crColor); InvalidateRect(hWnd, NULL, FALSE); break; case IDC_CONPROP_BACKGROUND_BTN: crColor = DispContainerProp.crBackground; DispContainerProp.crBackground = ShowColorDialog(hWnd, crColor); InvalidateRect(hWnd, NULL, FALSE); break; case IDC_CONPROP_RULERIN_BTN: crColor = DispContainerProp.crRulerIn; DispContainerProp.crRulerIn = ShowColorDialog(hWnd, crColor); InvalidateRect(hWnd, NULL, FALSE); break; case IDC_CONPROP_RULEROUT_BTN: crColor = DispContainerProp.crRulerout; DispContainerProp.crRulerout = ShowColorDialog(hWnd, crColor); InvalidateRect(hWnd, NULL, FALSE); break; case IDC_CONPROP_NONACTIVE_BTN: crColor = DispContainerProp.crNonActiveBorderColor; DispContainerProp.crNonActiveBorderColor= ShowColorDialog(hWnd, crColor); InvalidateRect(hWnd, NULL, FALSE); break; case IDC_CONPROP_DEF_BTN: case IDC_CONPROP_VERT_BTN: case IDC_CONPROP_HORZ_BTN: case IDC_CONPROP_ALL_BTN: { L_INT nRet; OPENFILENAME OpenFileName; L_TCHAR FileName[L_MAXPATH] = TEXT("\0"); memset(&OpenFileName, 0, sizeof(OPENFILENAME)); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.lpstrFilter = TEXT("Cursors(*.cur)\0 *.cur"); OpenFileName.nMaxCustFilter = 12; OpenFileName.hwndOwner = hWnd; OpenFileName.lpstrTitle = TEXT("Open a File"); OpenFileName.Flags = OFN_HIDEREADONLY | OFN_CREATEPROMPT; OpenFileName.lpstrFile = FileName; OpenFileName.nMaxFile = L_MAXPATH; nRet = GetOpenFileName(&OpenFileName); if (nRet == SUCCESS) { switch(nID) { case IDC_CONPROP_DEF_BTN: DispContainerProp.hDefaultCursor = LoadCursorFromFile(OpenFileName.lpstrFile); SendMessage(GetDlgItem(hWnd, IDC_CONPROP_DEF_BTN), BM_SETIMAGE , IMAGE_CURSOR, (LPARAM)(HCURSOR)DispContainerProp.hDefaultCursor); break; case IDC_CONPROP_VERT_BTN: DispContainerProp.hRszVertCursor = LoadCursorFromFile(OpenFileName.lpstrFile); SendMessage(GetDlgItem(hWnd, IDC_CONPROP_VERT_BTN), BM_SETIMAGE, IMAGE_CURSOR, (LPARAM)(HCURSOR)DispContainerProp.hRszVertCursor); break; case IDC_CONPROP_HORZ_BTN: DispContainerProp.hRszHorzCursor = LoadCursorFromFile(OpenFileName.lpstrFile); SendMessage(GetDlgItem(hWnd, IDC_CONPROP_HORZ_BTN), BM_SETIMAGE, IMAGE_CURSOR, (LPARAM)(HCURSOR)DispContainerProp.hRszHorzCursor); break; case IDC_CONPROP_ALL_BTN: DispContainerProp.hRszBothCursor = LoadCursorFromFile(OpenFileName.lpstrFile); SendMessage(GetDlgItem(hWnd, IDC_CONPROP_ALL_BTN), BM_SETIMAGE, IMAGE_CURSOR, (LPARAM)(HCURSOR)DispContainerProp.hRszBothCursor); break; } } } break; case IDAPPLY: case IDOK: { DispContainerProp.uTextQuality = ComboBox_GetCurSel(GetDlgItem(hWnd, IDC_CONPROP_TEXTQUALITY_COM)); DispContainerProp.uCellsMaintenance = !Button_GetCheck(GetDlgItem(hWnd, IDC_CONPROP_MNTNSIZE_CHK)); DispContainerProp.bShowFreezeText = Button_GetCheck(GetDlgItem(hWnd, IDC_CONPROP_FRZ_CHK)); DispContainerProp.uNumRows = max(1, GetDlgItemInt(hWnd, IDC_CONPROP_ROWS_EDT, NULL, FALSE)); DispContainerProp.uNumCols = max(1, GetDlgItemInt(hWnd, IDC_CONPROP_COLS_EDT, NULL, FALSE)); L_DispContainerSetProperties(hCon, &DispContainerProp, 0); if (nID == IDAPPLY) break; EndDialog(hWnd, 1); } break; case IDCANCEL: EndDialog(hWnd, 0); break; } return TRUE; }