// DemoView.cpp : implementation of the CDemoView class // #include "stdafx.h" #include "Demo.h" #include "DemoDoc.h" #include "DemoView.h" #include "rangedlg.h" #include "frmstng.h" #include "CrtAnim.h" #include "ColorDlg.h" #include "PattDlg.h" #include "BrowseFileDlg.h" #include "SliceDlg.h" #include CDemo* pTheApp=0; #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif //extern CDemo theApp; ///////////////////////////////////////////////////////////////////////////// // CDemoView IMPLEMENT_DYNCREATE(CDemoView, CView) BEGIN_MESSAGE_MAP(CDemoView, CView) //{{AFX_MSG_MAP(CDemoView) ON_WM_CREATE() ON_WM_SIZE() ON_COMMAND(IDM_ADDNOISE, OnImageAddnoise) ON_COMMAND(IDM_FLIP, OnImageFlip) ON_COMMAND(IDM_AVERAGE, OnImageAverage) ON_COMMAND(IDM_POSTERIZE, OnImagePosterize) ON_COMMAND(IDM_MOSAIC, OnImageMosaic) ON_COMMAND(IDM_MEDIAN, OnImageMedian) ON_COMMAND(IDM_SHARPEN, OnImageSharpen) ON_COMMAND(IDM_EMBOSS, OnImageEmboss) ON_COMMAND(IDM_OILIFY, OnImageOilify) ON_COMMAND(IDM_EROSION, OnImageErosion) ON_COMMAND(IDM_DILATION, OnImageDilation) ON_COMMAND(IDM_MAXFILTER, OnImageFiltermax) ON_COMMAND(IDM_MINFILTER, OnImageFiltermin) ON_COMMAND(IDM_GRADIENT, OnImageGradient) ON_COMMAND(IDM_LAPLACE, OnImageLaplacian) ON_COMMAND(IDM_SOBEL, OnImageSobel) ON_COMMAND(IDM_PREWITT, OnImagePrewit) ON_COMMAND(IDM_SHIFTDIFF, OnImageShitdiff) ON_COMMAND(IDM_LINESEG, OnImageLinesegment) ON_COMMAND(IDM_REVERSE, OnImageReverce) ON_COMMAND(IDM_SHEAR, OnImageShear) ON_COMMAND(IDM_DESKEW, OnImageDeskew) ON_COMMAND(IDM_AUTOTRIM, OnImageAutotrim) ON_COMMAND(IDM_ROTATE90, OnImageRot90) ON_COMMAND(IDM_ROTATE270, OnImageRot270) ON_COMMAND(IDM_ROTATE180, OnImageRot180) ON_COMMAND(IDM_ROTATE, OnImageRotanyangle) ON_COMMAND(IDM_FASTROTATE180, OnImageFast180) ON_COMMAND(IDM_FASTROTATE270, OnImageFast270) ON_COMMAND(IDM_FASTROTATE90, OnImageFast90) ON_COMMAND(IDM_BRIGHTNESS, OnColorBrightness) ON_COMMAND(IDM_CONTRAST, OnColorContrast) ON_COMMAND(IDM_FILLBLACK, OnColorFill) ON_COMMAND(IDM_GAMMA, OnColorGamma) ON_COMMAND(IDM_GRAYSCALE12, OnColorGray12) ON_COMMAND(IDM_GRAYSCALE16, OnColorGray16) ON_COMMAND(IDM_GRAYSCALE8, OnColorGray8) ON_COMMAND(IDM_HISTOCONTRAST, OnColorHistocontrast) ON_COMMAND(IDM_HISTOEQUALIZE, OnColorHistoequalize) ON_COMMAND(IDM_HUE, OnColorHue) ON_COMMAND(IDM_DETECT, OnColorIntensitydetect) ON_COMMAND(IDM_STRETCHINTENSITY, OnColorIntensitystretch) ON_COMMAND(IDM_INVERT, OnColorInvert) ON_COMMAND(IDM_PICTURIZE, OnColorPicturize) ON_COMMAND(IDM_COLORRES, OnColorResolution) ON_COMMAND(IDM_SATURATION, OnColorSaturation) ON_COMMAND(IDM_COLORSEP_ALPHA, OnColorSepalpha) ON_COMMAND(IDM_COLORSEP_CMY, OnColorSepcmy) ON_COMMAND(IDM_COLORSEP_CMYK, OnColorSepcmyk) ON_COMMAND(IDM_COLORSEP_HLS, OnColorSephls) ON_COMMAND(IDM_COLORSEP_HSV, OnColorSephsv) ON_COMMAND(IDM_COLORSEP_RGB, OnColorSeprgb) ON_COMMAND(IDM_SOLARIZE, OnColorSolarize) ON_COMMAND(IDM_COUNTCOLORS, OnColorUnique) ON_COMMAND(IDM_WINDOWLEVEL, OnColorWinlevel) ON_COMMAND(ID_EDIT_COPY, OnEditCopy) ON_UPDATE_COMMAND_UI(ID_EDIT_COPY, OnUpdateEditCopy) ON_COMMAND(IDM_PREF_BITFAVOR, OnPrefBitfavor) ON_COMMAND(IDM_VIEW_NORMAL, OnViewNormal) ON_UPDATE_COMMAND_UI(IDM_VIEW_NORMAL, OnUpdateViewNormal) ON_COMMAND(IDM_VIEW_ZOOM, OnViewZoom) ON_UPDATE_COMMAND_UI(IDM_VIEW_ZOOM, OnUpdateViewZoom) ON_COMMAND(IDM_VIEW_ZOOMIN, OnViewZoomin) ON_UPDATE_COMMAND_UI(IDM_VIEW_ZOOMIN, OnUpdateViewZoomin) ON_COMMAND(IDM_VIEW_ZOOMOUT, OnViewZoomout) ON_UPDATE_COMMAND_UI(IDM_VIEW_ZOOMOUT, OnUpdateViewZoomout) ON_COMMAND(IDM_FIT_FITWIN, OnFitFitwin) ON_UPDATE_COMMAND_UI(IDM_FIT_FITWIN, OnUpdateFitFitwin) ON_COMMAND(IDM_FIT_HEIGHT, OnFitHeight) ON_UPDATE_COMMAND_UI(IDM_FIT_HEIGHT, OnUpdateFitHeight) ON_COMMAND(IDM_FIT_STRETCH, OnFitStretch) ON_UPDATE_COMMAND_UI(IDM_FIT_STRETCH, OnUpdateFitStretch) ON_COMMAND(IDM_FIT_WIDTH, OnFitWidth) ON_UPDATE_COMMAND_UI(IDM_FIT_WIDTH, OnUpdateFitWidth) ON_COMMAND(IDM_ANI_PLAY, OnAniPlay) ON_UPDATE_COMMAND_UI(IDM_ANI_PLAY, OnUpdateAniPlay) ON_COMMAND(IDM_ANI_FIRST, OnAniFirst) ON_UPDATE_COMMAND_UI(IDM_ANI_FIRST, OnUpdateAniFirst) ON_COMMAND(IDM_ANI_LAST, OnAniLast) ON_UPDATE_COMMAND_UI(IDM_ANI_LAST, OnUpdateAniLast) ON_COMMAND(IDM_ANI_LOOP, OnAniLoop) ON_UPDATE_COMMAND_UI(IDM_ANI_LOOP, OnUpdateAniLoop) ON_COMMAND(IDM_ANI_NEXT, OnAniNext) ON_UPDATE_COMMAND_UI(IDM_ANI_NEXT, OnUpdateAniNext) ON_COMMAND(IDM_ANI_PREVIOUS, OnAniPrevious) ON_UPDATE_COMMAND_UI(IDM_ANI_PREVIOUS, OnUpdateAniPrevious) ON_COMMAND(IDM_ANI_STOP, OnAniStop) ON_UPDATE_COMMAND_UI(IDM_ANI_STOP, OnUpdateAniStop) ON_COMMAND(IDM_ANI_CREATE, OnAniCreate) ON_COMMAND(IDM_ANI_BACKCOLOR, OnAniBackcolor) ON_UPDATE_COMMAND_UI(IDM_ANI_BACKCOLOR, OnUpdateAniBackcolor) ON_UPDATE_COMMAND_UI(IDM_ANI_OPTIMIZE, OnUpdateAniOptimize) ON_COMMAND(IDM_ANI_OPTIMIZE, OnAniOptimize) ON_COMMAND(ID_ANI_SETTINGS, OnAniSettings) ON_UPDATE_COMMAND_UI(ID_ANI_SETTINGS, OnUpdateAniSettings) ON_UPDATE_COMMAND_UI(IDM_PREF_BITFAVOR, OnUpdatePrefBitfavor) ON_COMMAND(IDM_PREF_BITSCALEGRAY, OnPrefBitscalegray) ON_UPDATE_COMMAND_UI(IDM_PREF_BITSCALEGRAY, OnUpdatePrefBitscalegray) ON_COMMAND(IDM_PREF_BITNORMAL, OnPrefBitnormal) ON_UPDATE_COMMAND_UI(IDM_PREF_BITNORMAL, OnUpdatePrefBitnormal) ON_COMMAND(IDM_PREF_DISPCONTRAST, OnPrefDispcontrast) ON_UPDATE_COMMAND_UI(IDM_PREF_DISPCONTRAST, OnUpdatePrefDispcontrast) ON_COMMAND(IDM_PREF_DISPGAMMA, OnPrefDispgamma) ON_UPDATE_COMMAND_UI(IDM_PREF_DISPGAMMA, OnUpdatePrefDispgamma) ON_COMMAND(IDM_PREF_DISPINTENSITY, OnPrefDispintensity) ON_UPDATE_COMMAND_UI(IDM_PREF_DISPINTENSITY, OnUpdatePrefDispintensity) ON_COMMAND(IDM_PREF_DITHRERRDIFF, OnPrefDithrerrdiff) ON_UPDATE_COMMAND_UI(IDM_PREF_DITHRERRDIFF, OnUpdatePrefDithrerrdiff) ON_COMMAND(IDM_PREF_DITHRORDERED, OnPrefDithrordered) ON_UPDATE_COMMAND_UI(IDM_PREF_DITHRORDERED, OnUpdatePrefDithrordered) ON_COMMAND(IDM_PREF_PALAUTO, OnPrefPalauto) ON_COMMAND(IDM_PREF_PALFIXED, OnPrefPalfixed) ON_UPDATE_COMMAND_UI(IDM_PREF_PALFIXED, OnUpdatePrefPalfixed) ON_COMMAND(IDM_PREF_PALNETSCAPE, OnPrefPalnetscape) ON_UPDATE_COMMAND_UI(IDM_PREF_PALNETSCAPE, OnUpdatePrefPalnetscape) ON_COMMAND(IDM_PREF_LOCALSETTINGS, OnPrefLocalsettings) ON_UPDATE_COMMAND_UI(IDM_PREF_LOCALSETTINGS, OnUpdatePrefLocalsettings) ON_COMMAND(IDM_VIEW_PANWINDOW, OnViewPanwindow) ON_UPDATE_COMMAND_UI(IDM_VIEW_PANWINDOW, OnUpdateViewPanwindow) ON_COMMAND(ID_FILE_SAVE, OnFileSave) ON_COMMAND(ID_FILE_SAVE_AS, OnFileSaveAs) ON_COMMAND(IDM_TOOL_NONE, OnToolNone) ON_UPDATE_COMMAND_UI(IDM_TOOL_NONE, OnUpdateToolNone) ON_COMMAND(IDM_TOOL_PANIMAGE, OnToolPanimage) ON_UPDATE_COMMAND_UI(IDM_TOOL_PANIMAGE, OnUpdateToolPanimage) ON_COMMAND(IDM_TOOL_ZOOMRECT, OnToolZoomrect) ON_UPDATE_COMMAND_UI(IDM_TOOL_ZOOMRECT, OnUpdateToolZoomrect) ON_COMMAND(IDM_RGN_ELLIPSE, OnRgnEllipse) ON_UPDATE_COMMAND_UI(IDM_RGN_ELLIPSE, OnUpdateRgnEllipse) ON_COMMAND(IDM_RGN_FREEHAND, OnRgnFreehand) ON_UPDATE_COMMAND_UI(IDM_RGN_FREEHAND, OnUpdateRgnFreehand) ON_COMMAND(IDM_RGN_POLYGON, OnRgnPolygon) ON_UPDATE_COMMAND_UI(IDM_RGN_POLYGON, OnUpdateRgnPolygon) ON_COMMAND(IDM_RGN_RECTANGLE, OnRgnRectangle) ON_UPDATE_COMMAND_UI(IDM_RGN_RECTANGLE, OnUpdateRgnRectangle) ON_COMMAND(IDM_RGN_RNDRECT, OnRgnRndrect) ON_UPDATE_COMMAND_UI(IDM_RGN_RNDRECT, OnUpdateRgnRndrect) ON_COMMAND(IDM_RGN_TRIANGLE, OnRgnTriangle) ON_UPDATE_COMMAND_UI(IDM_RGN_TRIANGLE, OnUpdateRgnTriangle) ON_COMMAND(IDM_RGN_ANIMFRAME, OnRgnAnimframe) ON_UPDATE_COMMAND_UI(IDM_RGN_ANIMFRAME, OnUpdateRgnAnimframe) ON_COMMAND(IDM_PREF_ENABLESCROLL, OnPrefEnablescroll) ON_UPDATE_COMMAND_UI(IDM_PREF_ENABLESCROLL, OnUpdatePrefEnablescroll) ON_COMMAND(IDM_VIEW_ENABLE_GRADINT, OnViewEnableGradint) ON_UPDATE_COMMAND_UI(IDM_VIEW_ENABLE_GRADINT, OnUpdateViewEnableGradint) ON_COMMAND(IDM_VIEW_ENABLE_TRANSITION, OnViewEnableTransition) ON_UPDATE_COMMAND_UI(IDM_VIEW_ENABLE_TRANSITION, OnUpdateViewEnableTransition) ON_COMMAND(IDM_VIEW_EFFECTS, OnViewEffects) ON_COMMAND(IDM_VIEW_ENABLE_PATTERN, OnViewEnablePattern) ON_UPDATE_COMMAND_UI(IDM_VIEW_ENABLE_PATTERN, OnUpdateViewEnablePattern) ON_COMMAND(IDM_VIEW_PAINT_TRANSITION, OnViewPaintTransition) ON_COMMAND(IDM_VIEW_PAINT_GRADIENT, OnViewPaintGradient) ON_UPDATE_COMMAND_UI(IDM_WINDOWLEVEL, OnUpdateColorWinlevel) ON_COMMAND(ID_FILE_PRINT, OnFilePrint) ON_COMMAND(IDM_VIEW_ENABLE_PAINT_EFFECTS, OnViewEnablePaintEffects) ON_UPDATE_COMMAND_UI(IDM_VIEW_ENABLE_PAINT_EFFECTS, OnUpdateViewEnablePaintEffects) ON_COMMAND(IDM_RGN_CANCEL, OnRgnCancel) ON_UPDATE_COMMAND_UI(IDM_RGN_CANCEL, OnUpdateRgnCancel) ON_COMMAND(IDM_TOOL_ZOOM_IN_MOUSE, OnToolZoomInMouse) ON_UPDATE_COMMAND_UI(IDM_TOOL_ZOOM_IN_MOUSE, OnUpdateToolZoomInMouse) ON_COMMAND(IDM_VIEW_ZOOM_CENTER, OnViewZoomCenter) ON_UPDATE_COMMAND_UI(IDM_VIEW_ZOOM_CENTER, OnUpdateViewZoomCenter) ON_COMMAND(IDM_VIEW_PAINTUSEDPI, OnViewPaintusedpi) ON_UPDATE_COMMAND_UI(IDM_VIEW_PAINTUSEDPI, OnUpdateViewPaintusedpi) ON_UPDATE_COMMAND_UI(IDM_FASTROTATE180, OnUpdateImageFast180) ON_UPDATE_COMMAND_UI(IDM_FASTROTATE270, OnUpdateImageFast270) ON_UPDATE_COMMAND_UI(IDM_FASTROTATE90, OnUpdateImageFast90) ON_UPDATE_COMMAND_UI(IDM_GRAYSCALE12, OnUpdateColorGray12) ON_UPDATE_COMMAND_UI(IDM_GRAYSCALE16, OnUpdateColorGray16) ON_UPDATE_COMMAND_UI(IDM_GRAYSCALE8, OnUpdateColorGray8) ON_UPDATE_COMMAND_UI(IDM_COLORRES, OnUpdateColorResolution) ON_COMMAND(IDM_RGN_STATICFRAME, OnRgnStaticframe) ON_UPDATE_COMMAND_UI(IDM_RGN_STATICFRAME, OnUpdateRgnStaticframe) ON_COMMAND(IDM_RGN_NONEFRAME, OnRgnNoneframe) ON_UPDATE_COMMAND_UI(IDM_RGN_NONEFRAME, OnUpdateRgnNoneframe) ON_COMMAND(IDM_PREF_ENABLEKEYBOARD, OnPrefEnablekeyboard) ON_UPDATE_COMMAND_UI(IDM_PREF_ENABLEKEYBOARD, OnUpdatePrefEnablekeyboard) ON_UPDATE_COMMAND_UI(ID_APP_ABOUT, OnUpdateAppAbout) ON_UPDATE_COMMAND_UI(ID_FILE_PRINT, OnUpdateFilePrint) ON_UPDATE_COMMAND_UI(ID_FILE_PRINT_SETUP, OnUpdateFilePrintSetup) ON_UPDATE_COMMAND_UI(IDM_ANI_CREATE, OnUpdateAniCreate) ON_UPDATE_COMMAND_UI(ID_WINDOW_ARRANGE, OnUpdateWindowArrange) ON_UPDATE_COMMAND_UI(ID_WINDOW_CASCADE, OnUpdateWindowCascade) ON_UPDATE_COMMAND_UI(ID_WINDOW_TILE_HORZ, OnUpdateWindowTileHorz) ON_UPDATE_COMMAND_UI(IDM_BRIGHTNESS, OnUpdateColorBrightness) ON_UPDATE_COMMAND_UI(IDM_CONTRAST, OnUpdateColorContrast) ON_UPDATE_COMMAND_UI(IDM_FILLBLACK, OnUpdateColorFill) ON_UPDATE_COMMAND_UI(IDM_GAMMA, OnUpdateColorGamma) ON_UPDATE_COMMAND_UI(IDM_HISTOCONTRAST, OnUpdateColorHistocontrast) ON_UPDATE_COMMAND_UI(IDM_HISTOEQUALIZE, OnUpdateColorHistoequalize) ON_UPDATE_COMMAND_UI(IDM_HUE, OnUpdateColorHue) ON_UPDATE_COMMAND_UI(IDM_DETECT, OnUpdateColorIntensitydetect) ON_UPDATE_COMMAND_UI(IDM_STRETCHINTENSITY, OnUpdateColorIntensitystretch) ON_UPDATE_COMMAND_UI(IDM_INVERT, OnUpdateColorInvert) ON_UPDATE_COMMAND_UI(IDM_PICTURIZE, OnUpdateColorPicturize) ON_UPDATE_COMMAND_UI(IDM_SATURATION, OnUpdateColorSaturation) ON_UPDATE_COMMAND_UI(IDM_COLORSEP_ALPHA, OnUpdateColorSepalpha) ON_UPDATE_COMMAND_UI(IDM_COLORSEP_CMY, OnUpdateColorSepcmy) ON_UPDATE_COMMAND_UI(IDM_COLORSEP_CMYK, OnUpdateColorSepcmyk) ON_UPDATE_COMMAND_UI(IDM_COLORSEP_HLS, OnUpdateColorSephls) ON_UPDATE_COMMAND_UI(IDM_COLORSEP_HSV, OnUpdateColorSephsv) ON_UPDATE_COMMAND_UI(IDM_COLORSEP_RGB, OnUpdateColorSeprgb) ON_UPDATE_COMMAND_UI(IDM_SOLARIZE, OnUpdateColorSolarize) ON_UPDATE_COMMAND_UI(IDM_COUNTCOLORS, OnUpdateColorUnique) ON_UPDATE_COMMAND_UI(IDM_ADDNOISE, OnUpdateImageAddnoise) ON_UPDATE_COMMAND_UI(IDM_AUTOTRIM, OnUpdateImageAutotrim) ON_UPDATE_COMMAND_UI(IDM_AVERAGE, OnUpdateImageAverage) ON_UPDATE_COMMAND_UI(IDM_DESKEW, OnUpdateImageDeskew) ON_UPDATE_COMMAND_UI(IDM_DILATION, OnUpdateImageDilation) ON_UPDATE_COMMAND_UI(IDM_EMBOSS, OnUpdateImageEmboss) ON_UPDATE_COMMAND_UI(IDM_EROSION, OnUpdateImageErosion) ON_UPDATE_COMMAND_UI(IDM_MAXFILTER, OnUpdateImageFiltermax) ON_UPDATE_COMMAND_UI(IDM_MINFILTER, OnUpdateImageFiltermin) ON_UPDATE_COMMAND_UI(IDM_FLIP, OnUpdateImageFlip) ON_UPDATE_COMMAND_UI(IDM_GRADIENT, OnUpdateImageGradient) ON_UPDATE_COMMAND_UI(IDM_LAPLACE, OnUpdateImageLaplacian) ON_UPDATE_COMMAND_UI(IDM_LINESEG, OnUpdateImageLinesegment) ON_UPDATE_COMMAND_UI(IDM_MEDIAN, OnUpdateImageMedian) ON_UPDATE_COMMAND_UI(IDM_MOSAIC, OnUpdateImageMosaic) ON_UPDATE_COMMAND_UI(IDM_OILIFY, OnUpdateImageOilify) ON_UPDATE_COMMAND_UI(IDM_POSTERIZE, OnUpdateImagePosterize) ON_UPDATE_COMMAND_UI(IDM_PREWITT, OnUpdateImagePrewit) ON_UPDATE_COMMAND_UI(IDM_REVERSE, OnUpdateImageReverce) ON_UPDATE_COMMAND_UI(IDM_ROTATE180, OnUpdateImageRot180) ON_UPDATE_COMMAND_UI(IDM_ROTATE270, OnUpdateImageRot270) ON_UPDATE_COMMAND_UI(IDM_ROTATE90, OnUpdateImageRot90) ON_UPDATE_COMMAND_UI(IDM_ROTATE, OnUpdateImageRotanyangle) ON_UPDATE_COMMAND_UI(IDM_SHARPEN, OnUpdateImageSharpen) ON_UPDATE_COMMAND_UI(IDM_SHEAR, OnUpdateImageShear) ON_UPDATE_COMMAND_UI(IDM_SHIFTDIFF, OnUpdateImageShitdiff) ON_UPDATE_COMMAND_UI(IDM_SOBEL, OnUpdateImageSobel) ON_UPDATE_COMMAND_UI(IDM_UNDERLAY, OnUpdateImageUnderlay) ON_UPDATE_COMMAND_UI(IDM_VIEW_EFFECTS, OnUpdateViewEffects) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_ACTIVECLIENT, OnUpdateCaptureActiveclient) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_ACTIVEWIN, OnUpdateCaptureActivewin) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_AREA, OnUpdateCaptureArea) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_AREAOP, OnUpdateCaptureAreaop) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_CAPTOP, OnUpdateCaptureCaptop) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_EXETABBED, OnUpdateCaptureExetabbed) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_EXETREE, OnUpdateCaptureExetree) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_MENU, OnUpdateCaptureMenu) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_MOUSECURSOR, OnUpdateCaptureMousecursor) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_OBJECT, OnUpdateCaptureObject) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_OBJECTOP, OnUpdateCaptureObjectop) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_SCREEN, OnUpdateCaptureScreen) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_STOP, OnUpdateCaptureStop) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_WALLPAPER, OnUpdateCaptureWallpaper) ON_UPDATE_COMMAND_UI(IDM_CAPTURE_WINUNDERCURSOR, OnUpdateCaptureWinundercursor) ON_UPDATE_COMMAND_UI(IDM_VIEW_PAINT_GRADIENT, OnUpdateViewPaintGradient) ON_UPDATE_COMMAND_UI(IDM_VIEW_PAINT_TRANSITION, OnUpdateViewPaintTransition) ON_COMMAND(IDM_VIEW_PAINT_PATTERN, OnViewPaintPattern) ON_UPDATE_COMMAND_UI(IDM_VIEW_PAINT_PATTERN, OnUpdateViewPaintPattern) ON_WM_DROPFILES() ON_COMMAND(IDM_PREF_ENABLEDRAGFILE, OnPrefEnabledragfile) ON_UPDATE_COMMAND_UI(IDM_PREF_ENABLEDRAGFILE, OnUpdatePrefEnabledragfile) ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_AS, OnUpdateFileSaveAs) ON_COMMAND(IDM_UNDERLAY, OnImageUnderlay) ON_UPDATE_COMMAND_UI(ID_INDICATOR_FILENAME, OnUpdateIndicatorFileName) ON_UPDATE_COMMAND_UI(ID_INDICATOR_SIZE, OnUpdateIndicatorSize) ON_UPDATE_COMMAND_UI(ID_INDICATOR_BPP, OnUpdateIndicatorBPP) ON_UPDATE_COMMAND_UI(ID_INDICATOR_ZOOMPERCENT, OnUpdateIndicatorZoomPercent) ON_UPDATE_COMMAND_UI(ID_INDICATOR_MEMSIZE, OnUpdateIndicatorMemSize) ON_COMMAND(ID_EDIT_PASTE_FLOATER, OnEditPasteFloater) ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE_FLOATER, OnUpdateEditPasteFloater) ON_UPDATE_COMMAND_UI(IDM_PREF_PALAUTO, OnUpdatePrefPalauto) ON_COMMAND(IDM_PREF_PAINTWHILELOAD_FOR_CUR, OnPrefPaintwhileloadForCur) ON_UPDATE_COMMAND_UI(IDM_PREF_PAINTWHILELOAD_FOR_CUR, OnUpdatePrefPaintwhileloadForCur) ON_COMMAND(ID_EDIT_COPY_FLOATER, OnEditCopyFloater) ON_UPDATE_COMMAND_UI(ID_EDIT_COPY_FLOATER, OnUpdateEditCopyFloater) ON_COMMAND(IDM_CONTOURFILTER, OnColorContour) ON_COMMAND(IDM_SMOOTH, OnImageSmooth) ON_COMMAND(IDM_LINE, OnImageLine) ON_COMMAND(IDM_HOLEPUNCH, OnImageHolepunch) ON_COMMAND(IDM_DOT, OnImageDot) ON_COMMAND(IDM_INVERTEDTEXT, OnImageInvertedtext) ON_COMMAND(IDM_BORDER, OnImageBorder) ON_COMMAND(IDM_TOOL_MAGNIFYINGGLASS, OnToolMagnifyingglass) ON_UPDATE_COMMAND_UI(IDM_TOOL_MAGNIFYINGGLASS, OnUpdateToolMagnifyingglass) ON_UPDATE_COMMAND_UI(IDM_HALFTONE, OnUpdateColorHalftone) ON_COMMAND(IDM_HALFTONE, OnColorHalftone) ON_UPDATE_COMMAND_UI(IDM_RESIZE, OnUpdateImageResize) ON_COMMAND(IDM_RESIZE, OnImageResize) ON_COMMAND(IDM_RGN_BEZIER, OnRgnBezier) ON_UPDATE_COMMAND_UI(IDM_RGN_BEZIER, OnUpdateRgnBezier) ON_COMMAND(IDM_RGN_CURVE, OnRgnCurve) ON_UPDATE_COMMAND_UI(IDM_RGN_CURVE, OnUpdateRgnCurve) ON_COMMAND(IDM_CONVERT, OnConvert) ON_COMMAND(IDM_JPEGWEBTUNER, OnJpegwebtuner) ON_COMMAND(IDM_PREF_PREVIEW, OnPrefPreview) ON_UPDATE_COMMAND_UI(IDM_PREF_PREVIEW, OnUpdatePrefPreview) ON_COMMAND(IDM_PNGWEBTUNER, OnPngwebtuner) ON_COMMAND(IDM_GIFWEBTUNER, OnGifwebtuner) ON_COMMAND(IDM_IMAGEMAPPER, OnImagemapper) ON_COMMAND(IDM_FILEFORMATASSOCIATIONS, OnFileformatassociations) ON_COMMAND(IDM_FASTFLIP, OnFastflip) ON_COMMAND(IDM_FASTREVERSE, OnFastreverse) ON_COMMAND(IDM_CANVASSIZE, OnCanvassize) ON_COMMAND(IDM_HISTOGRAM, OnHistogram) ON_COMMAND(IDM_ADDBORDER, OnAddborder) ON_COMMAND(IDM_ADDFRAME, OnAddframe) ON_COMMAND(IDM_REMOVEREDEYE, OnRemoveredeye) ON_COMMAND(IDM_MOTIONBLUR, OnMotionblur) ON_COMMAND(IDM_RADIALBLUR, OnRadialblur) ON_COMMAND(IDM_ZOOMBLUR, OnZoomblur) ON_COMMAND(IDM_GAUSSIANBLUR, OnGaussianblur) ON_COMMAND(IDM_ANTIALIAS, OnAntialias) ON_COMMAND(IDM_UNSHARPMASK, OnUnsharpmask) ON_COMMAND(IDM_MULTIPLY, OnMultiply) ON_COMMAND(IDM_ADDBITMAPS, OnAddbitmaps) ON_COMMAND(IDM_STITCH, OnStitch) ON_COMMAND(IDM_FREEHANDWAVE, OnFreehandwave) ON_COMMAND(IDM_WIND, OnWind) ON_COMMAND(IDM_POLAR, OnPolar) ON_COMMAND(IDM_ZOOMWAVE, OnZoomwave) ON_COMMAND(IDM_RADIALWAVE, OnRadialwave) ON_COMMAND(IDM_SWIRL, OnSwirl) ON_COMMAND(IDM_WAVE, OnWave) ON_COMMAND(IDM_WAVESHEAR, OnWaveshear) ON_COMMAND(IDM_PUNCH, OnPunch) ON_COMMAND(IDM_RIPPLE, OnRipple) ON_COMMAND(IDM_CYLINDRICAL, OnCylindrical) ON_COMMAND(IDM_BENDING, OnBending) ON_COMMAND(IDM_SPHERIZE, OnSpherize) ON_COMMAND(IDM_IMPRESSION, OnImpression) ON_COMMAND(IDM_PIXELATE, OnPixelate) ON_COMMAND(IDM_EDGEDETECT, OnEdgedetect) ON_COMMAND(IDM_BALANCECOLORS, OnBalancecolors) ON_COMMAND(IDM_GRAYSCALE, OnGrayscale) ON_COMMAND(IDM_COLOREDGRAY, OnColoredgray) ON_COMMAND(IDM_REMAPINTENSITY, OnRemapintensity) ON_COMMAND(IDM_REMAPHUE, OnRemaphue) ON_COMMAND(IDM_LOCALEQUALIZE, OnLocalequalize) ON_COMMAND(IDM_PALETTEEDITOR, OnPaletteeditor) ON_COMMAND(IDM_FILLWHITE, OnFillwhite) ON_COMMAND(IDM_FILLRED, OnFillred) ON_COMMAND(IDM_FILLGREEN, OnFillgreen) ON_COMMAND(IDM_FILLBLUE, OnFillblue) ON_COMMAND(IDM_FILLCYAN, OnFillcyan) ON_COMMAND(IDM_FILLMAGENTA, OnFillmagenta) ON_COMMAND(IDM_FILLYELLOW, OnFillyellow) ON_UPDATE_COMMAND_UI(IDM_SMOOTH, OnUpdateSmooth) ON_UPDATE_COMMAND_UI(IDM_INVERTEDTEXT, OnUpdateInvertedtext) ON_UPDATE_COMMAND_UI(IDM_DOT, OnUpdateDot) ON_UPDATE_COMMAND_UI(IDM_BORDER, OnUpdateBorder) ON_UPDATE_COMMAND_UI(IDM_HOLEPUNCH, OnUpdateHolepunch) ON_UPDATE_COMMAND_UI(IDM_LINE, OnUpdateLine) ON_COMMAND(IDM_PREVIEW, OnPreview) ON_COMMAND(IDM_PRINTSTITCHEDIMAGES, OnPrintstitchedimages) ON_UPDATE_COMMAND_UI(IDM_FASTFLIP, OnUpdateFastflip) ON_UPDATE_COMMAND_UI(IDM_FASTREVERSE, OnUpdateFastreverse) ON_UPDATE_COMMAND_UI(IDM_ADDBORDER, OnUpdateAddborder) ON_UPDATE_COMMAND_UI(IDM_ADDFRAME, OnUpdateAddframe) ON_UPDATE_COMMAND_UI(IDM_REMOVEREDEYE, OnUpdateRemoveredeye) ON_UPDATE_COMMAND_UI(IDM_CANVASSIZE, OnUpdateCanvassize) ON_UPDATE_COMMAND_UI(IDM_HISTOGRAM, OnUpdateHistogram) ON_UPDATE_COMMAND_UI(IDM_MOTIONBLUR, OnUpdateMotionblur) ON_UPDATE_COMMAND_UI(IDM_RADIALBLUR, OnUpdateRadialblur) ON_UPDATE_COMMAND_UI(IDM_ZOOMBLUR, OnUpdateZoomblur) ON_UPDATE_COMMAND_UI(IDM_GAUSSIANBLUR, OnUpdateGaussianblur) ON_UPDATE_COMMAND_UI(IDM_ANTIALIAS, OnUpdateAntialias) ON_UPDATE_COMMAND_UI(IDM_UNSHARPMASK, OnUpdateUnsharpmask) ON_UPDATE_COMMAND_UI(IDM_MULTIPLY, OnUpdateMultiply) ON_UPDATE_COMMAND_UI(IDM_ADDBITMAPS, OnUpdateAddbitmaps) ON_UPDATE_COMMAND_UI(IDM_STITCH, OnUpdateStitch) ON_UPDATE_COMMAND_UI(IDM_FREEHANDWAVE, OnUpdateFreehandwave) ON_UPDATE_COMMAND_UI(IDM_WIND, OnUpdateWind) ON_UPDATE_COMMAND_UI(IDM_POLAR, OnUpdatePolar) ON_UPDATE_COMMAND_UI(IDM_ZOOMWAVE, OnUpdateZoomwave) ON_UPDATE_COMMAND_UI(IDM_RADIALWAVE, OnUpdateRadialwave) ON_UPDATE_COMMAND_UI(IDM_SWIRL, OnUpdateSwirl) ON_UPDATE_COMMAND_UI(IDM_WAVE, OnUpdateWave) ON_UPDATE_COMMAND_UI(IDM_WAVESHEAR, OnUpdateWaveshear) ON_UPDATE_COMMAND_UI(IDM_PUNCH, OnUpdatePunch) ON_UPDATE_COMMAND_UI(IDM_RIPPLE, OnUpdateRipple) ON_UPDATE_COMMAND_UI(IDM_BENDING, OnUpdateBending) ON_UPDATE_COMMAND_UI(IDM_CYLINDRICAL, OnUpdateCylindrical) ON_UPDATE_COMMAND_UI(IDM_SPHERIZE, OnUpdateSpherize) ON_UPDATE_COMMAND_UI(IDM_IMPRESSION, OnUpdateImpression) ON_UPDATE_COMMAND_UI(IDM_PIXELATE, OnUpdatePixelate) ON_UPDATE_COMMAND_UI(IDM_EDGEDETECT, OnUpdateEdgedetect) ON_UPDATE_COMMAND_UI(IDM_CONTOURFILTER, OnUpdateContourfilter) ON_UPDATE_COMMAND_UI(IDM_BALANCECOLORS, OnUpdateBalancecolors) ON_UPDATE_COMMAND_UI(IDM_GRAYSCALE, OnUpdateGrayscale) ON_UPDATE_COMMAND_UI(IDM_COLOREDGRAY, OnUpdateColoredgray) ON_UPDATE_COMMAND_UI(IDM_LOCALEQUALIZE, OnUpdateLocalequalize) ON_UPDATE_COMMAND_UI(IDM_REMAPINTENSITY, OnUpdateRemapintensity) ON_UPDATE_COMMAND_UI(IDM_REMAPHUE, OnUpdateRemaphue) ON_UPDATE_COMMAND_UI(IDM_PALETTEEDITOR, OnUpdatePaletteeditor) ON_UPDATE_COMMAND_UI(IDM_FILLWHITE, OnUpdateFillwhite) ON_UPDATE_COMMAND_UI(IDM_FILLYELLOW, OnUpdateFillyellow) ON_UPDATE_COMMAND_UI(IDM_FILLRED, OnUpdateFillred) ON_UPDATE_COMMAND_UI(IDM_FILLMAGENTA, OnUpdateFillmagenta) ON_UPDATE_COMMAND_UI(IDM_FILLGREEN, OnUpdateFillgreen) ON_UPDATE_COMMAND_UI(IDM_FILLCYAN, OnUpdateFillcyan) ON_UPDATE_COMMAND_UI(IDM_FILLBLUE, OnUpdateFillblue) ON_UPDATE_COMMAND_UI(IDM_CONVERT, OnUpdateConvert) ON_UPDATE_COMMAND_UI(IDM_JPEGWEBTUNER, OnUpdateJpegwebtuner) ON_UPDATE_COMMAND_UI(IDM_PNGWEBTUNER, OnUpdatePngwebtuner) ON_UPDATE_COMMAND_UI(IDM_GIFWEBTUNER, OnUpdateGifwebtuner) ON_UPDATE_COMMAND_UI(IDM_IMAGEMAPPER, OnUpdateImagemapper) ON_UPDATE_COMMAND_UI(IDM_FILEFORMATASSOCIATIONS, OnUpdateFileformatassociations) ON_UPDATE_COMMAND_UI(IDM_PRINTSTITCHEDIMAGES, OnUpdatePrintstitchedimages) ON_UPDATE_COMMAND_UI(IDM_PREVIEW, OnUpdatePreview) ON_COMMAND(ID_PREFERENCES_LOADTEXTFILES, OnPreferencesLoadtextfiles) ON_UPDATE_COMMAND_UI(ID_PREFERENCES_LOADTEXTFILES, OnUpdatePreferencesLoadtextfiles) ON_WM_SETFOCUS() ON_WM_SETFOCUS() ON_COMMAND(ID_IMAGE_SLICE, OnImageSlice) //}}AFX_MSG_MAP // Standard printing commands ON_MESSAGE(WM_HANDLEPALETTE,OnHandlePalette) ON_MESSAGE(WM_LOAD_FILE,OnLoadFile) ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDemoView construction/destruction CDemoView::CDemoView() { if(pTheApp==0) pTheApp = (CDemo*)AfxGetApp(); m_nBitonalScaling = 0; m_nOrderedDither = 0; m_nAutoPalette = 0; m_bPictrezeCallback = FALSE; m_bDlgAutoProcess = TRUE; m_bDlgEnableToolBar = TRUE; m_LAniWnd.SetAutoFloaterToRgn(FALSE); m_VersionLevel = 0; VERSIONINFO VersionInfo; LBase::VersionInfo(&VersionInfo, sizeof(VersionInfo)); m_VersionLevel = VersionInfo.Level; } CDemoView::~CDemoView() { } BOOL CDemoView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs cs.style|=(WS_CLIPCHILDREN|WS_CLIPSIBLINGS); return CView::PreCreateWindow(cs); } LRESULT CDemoView::OnHandlePalette(WPARAM wParam,LPARAM lParam) { if(lParam==TRUE) { m_LAniWnd.HandlePalette(WM_PALETTECHANGED,wParam,0); m_LAniWnd.Repaint(); } else { if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } return TRUE; } void CDemoView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) { if(bActivate==TRUE&&pActivateView==this) { m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0); ::SetFocus(m_LAniWnd.GetBitmapWnd()); } } void CDemoView::OnDraw(CDC* pDC) { CDemoDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); } ///////////////////////////////////////////////////////////////////////////// // CDemoView printing BOOL CDemoView::OnPreparePrinting(CPrintInfo* pInfo) { return DoPreparePrinting(pInfo); } void CDemoView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add extra initialization before printing } void CDemoView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add cleanup after printing } ///////////////////////////////////////////////////////////////////////////// // CDemoView diagnostics #ifdef _DEBUG void CDemoView::AssertValid() const { CView::AssertValid(); } void CDemoView::Dump(CDumpContext& dc) const { CView::Dump(dc); } CDemoDoc* CDemoView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDemoDoc))); return (CDemoDoc*)m_pDocument; } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CDemoView message handlers int CDemoView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; if(pTheApp->m_pMainWnd->IsIconic()==TRUE) ((CMDIChildWnd*)GetParent())->MoveWindow(0,0,100,100); L_INT nRetCode = SUCCESS; //.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.> // // There are two way to use LEAD controls : // 1.As a control: // Enable A and Disable B // 2.As a Window : // Enable B and Disable As // // A : (LBitmapWindow works as a Window ) nRetCode = m_LAniWnd.SetWndHandle(m_hWnd); //End of A. // B : (LBitmapWindow works as a Control) /* HWND hWnd = NULL; hWnd = m_LAniWnd.CreateWnd(m_hWnd,0, WS_VISIBLE|L_BS_CENTER| L_BS_PROCESSKEYBOARD, 0,0,200,200); */ //End of B. if(nRetCode!=SUCCESS/*||hWnd==NULL*/) { LBase::DisplayErrorFromList(); return -1; } return 0; } void CDemoView::OnSize(UINT nType, int cx, int cy) { CView::OnSize(nType, cx, cy); if(!m_LAniWnd.IsAutoScrollEnabled()) m_LAniWnd.FitToParent(TRUE); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // Image // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnImageFlip() { BeginWaitCursor() ; m_LAniWnd.Flip(); EndWaitCursor() ; } void CDemoView::OnImagePosterize() { POSTERIZEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( POSTERIZEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( POSTERIZEDLGPARAMS ) ; DlgParams.nLevels = 2 ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->SetPosterizeParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalPosterize(m_hWnd); } void CDemoView::OnImageDespeckle() { BeginWaitCursor() ; m_LAniWnd.Despeckle(); EndWaitCursor() ; } void CDemoView::OnImageReverce() { BeginWaitCursor() ; m_LAniWnd.Reverse(); EndWaitCursor() ; } void CDemoView::OnImageShear() { SHEARDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( SHEARDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( SHEARDLGPARAMS ) ; DlgParams.nAngle = 0 ; DlgParams.bHorizontal = TRUE ; DlgParams.uDlgFlags = (m_LAniWnd.HasRgn()?0:DLG_SHEAR_SHOW_HORIZONTAL) | (m_LAniWnd.HasRgn()?0:DLG_SHEAR_SHOW_BACKCOLOR); m_LAniWnd.DialogImage()->EnableCallBack(FALSE); m_LAniWnd.DialogImage()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImage()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImage()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImage()->SetShearParams(&DlgParams) ; m_LAniWnd.DialogImage()->DoModalShear(m_hWnd); } void CDemoView::OnImageDeskew() { BeginWaitCursor() ; m_LAniWnd.Deskew(NULL, RGB(0,0,0), DSKW_PROCESS); EndWaitCursor() ; } void CDemoView::OnImageAutotrim() { AUTOTRIMDLGPARAMS DlgParams ; memset ( &DlgParams, 0, sizeof ( AUTOTRIMDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( AUTOTRIMDLGPARAMS ) ; DlgParams.nThreshold = 128 ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply? DLG_AUTOTRIM_SHOW_APPLY:0); m_LAniWnd.DialogImage()->EnableCallBack(FALSE); m_LAniWnd.DialogImage()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImage()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImage()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImage()->SetAutoTrimParams(&DlgParams) ; m_LAniWnd.DialogImage()->DoModalAutoTrim(m_hWnd); } void CDemoView::OnImageResize() { RESIZEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( RESIZEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( RESIZEDLGPARAMS ) ; DlgParams.uOriginalWidth = m_LAniWnd.GetWidth(); DlgParams.uOriginalHeight = m_LAniWnd.GetHeight(); DlgParams.uOriginalResolutionX = m_LAniWnd.GetXResolution(); DlgParams.uOriginalResolutionY = m_LAniWnd.GetYResolution(); DlgParams.uOriginalBitsPerPixel = m_LAniWnd.GetBitsPerPixel(); DlgParams.uNewWidth = m_LAniWnd.GetWidth(); DlgParams.uNewHeight = m_LAniWnd.GetHeight(); DlgParams.uNewResolutionX = m_LAniWnd.GetXResolution(); DlgParams.uNewResolutionY = m_LAniWnd.GetYResolution(); DlgParams.uResize = SIZE_NORMAL ; DlgParams.uDlgFlags = DLG_RESIZE_SHOW_PERCENTAGE | DLG_RESIZE_SHOW_IDENTICALVALUE | DLG_RESIZE_SHOW_MAINTAINASPECT | DLG_RESIZE_SHOW_RESOLUTIONGRP; m_LAniWnd.DialogImage()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImage()->EnableCallBack(FALSE); m_LAniWnd.DialogImage()->SetResizeParams(&DlgParams) ; m_LAniWnd.DialogImage()->DoModalResize(m_hWnd); } void CDemoView::OnUpdateImageResize(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnImageRot90() { BeginWaitCursor() ; m_LAniWnd.Rotate(9000,TRUE); EndWaitCursor() ; } void CDemoView::OnImageRot270() { BeginWaitCursor() ; m_LAniWnd.Rotate(27000,TRUE); EndWaitCursor() ; } void CDemoView::OnImageRot180() { BeginWaitCursor() ; m_LAniWnd.Rotate(18000,TRUE); EndWaitCursor() ; } void CDemoView::OnImageRotanyangle() { ROTATEDLGPARAMS DlgParams ; memset ( &DlgParams, 0, sizeof ( ROTATEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( ROTATEDLGPARAMS ) ; DlgParams.nAngle = 0 ; DlgParams.bResize = TRUE ; DlgParams.uDlgFlags = (m_LAniWnd.HasRgn()?0:DLG_ROTATE_SHOW_RESIZE) | (m_LAniWnd.HasRgn()?0:DLG_ROTATE_SHOW_BACKCOLOR); m_LAniWnd.DialogImage()->EnableCallBack(FALSE); m_LAniWnd.DialogImage()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImage()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImage()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImage()->SetRotateParams(&DlgParams) ; m_LAniWnd.DialogImage()->DoModalRotate(m_hWnd); } void CDemoView::OnImageFast90() { BeginWaitCursor() ; m_LAniWnd.RotateViewPerspective(90); EndWaitCursor() ; } void CDemoView::OnImageFast180() { BeginWaitCursor() ; m_LAniWnd.RotateViewPerspective(180); EndWaitCursor() ; } void CDemoView::OnImageFast270() { BeginWaitCursor() ; m_LAniWnd.RotateViewPerspective(270); EndWaitCursor() ; } void CDemoView::OnUpdateImageFast180(CCmdUI* pCmdUI) { L_BOOL bEnable = !m_LAniWnd.IsPlaying(); pCmdUI->Enable(!m_LAniWnd.HasFloater() && bEnable); } void CDemoView::OnUpdateImageFast270(CCmdUI* pCmdUI) { L_BOOL bEnable = !m_LAniWnd.IsPlaying(); pCmdUI->Enable(!m_LAniWnd.HasFloater() && bEnable); } void CDemoView::OnUpdateImageFast90(CCmdUI* pCmdUI) { L_BOOL bEnable = !m_LAniWnd.IsPlaying(); pCmdUI->Enable(!m_LAniWnd.HasFloater() && bEnable); } void CDemoView::OnUpdateImageAddnoise(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageAutotrim(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageAverage(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageDeskew(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.HasFloater() && !m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageDespeckle(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageDilation(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageEdgeenhance(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageEmboss(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageErosion(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageFiltermax(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageFiltermin(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageFlip(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageGradient(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageLaplacian(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageLinesegment(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageMedian(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageMosaic(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageOilify(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImagePosterize(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImagePrewit(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageReverce(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageRot180(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageRot270(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageRot90(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageRotanyangle(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageSharpen(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageShear(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageShitdiff(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageSobel(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImageUnderlay(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // Effect // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnMotionblur() { MOTIONBLURDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( MOTIONBLURDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof(MOTIONBLURDLGPARAMS); DlgParams.uDim = 1 ; DlgParams.nAngle = 0 ; DlgParams.bUnidirectional = FALSE ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_MOTIONBLUR_SHOW_APPLY:0); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetMotionBlurParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalMotionBlur(m_hWnd); } void CDemoView::OnRadialblur() { RADIALBLURDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( RADIALBLURDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof(RADIALBLURDLGPARAMS); DlgParams.uDim = 1 ; DlgParams.uStress = 1 ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_RADIALBLUR_SHOW_APPLY:0); if ( m_LAniWnd.HasRgn ( ) ) { RECT rcRGN ; RGNXFORM xform ; xform.nXOffset = 0 ; xform.nYOffset = 0 ; xform.nXScalarDen = 1 ; xform.nXScalarNum = 1 ; xform.nYScalarDen = 1 ; xform.nYScalarNum = 1 ; xform.uViewPerspective = TOP_LEFT ; m_LAniWnd.Region()->SetRgnXForm ( &xform ) ; m_LAniWnd.Region()->GetRgnBounds( &rcRGN ) ; DlgParams.ptCenter.y = RECTHEIGHT(&rcRGN) / 2 ; DlgParams.ptCenter.x = RECTWIDTH(&rcRGN) / 2 ; } else { DlgParams.ptCenter.y = m_LAniWnd.GetHeight ( ) / 2 ; DlgParams.ptCenter.x = m_LAniWnd.GetWidth ( ) / 2 ; } m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetRadialBlurParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalRadialBlur(m_hWnd); } void CDemoView::OnZoomblur() { ZOOMBLURDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( ZOOMBLURDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof(ZOOMBLURDLGPARAMS); DlgParams.uDim = 1 ; DlgParams.uStress = 1 ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_ZOOMBLUR_SHOW_APPLY:0); if ( m_LAniWnd.HasRgn ( ) ) { RECT rcRGN ; RGNXFORM xform ; xform.nXOffset = 0 ; xform.nYOffset = 0 ; xform.nXScalarDen = 1 ; xform.nXScalarNum = 1 ; xform.nYScalarDen = 1 ; xform.nYScalarNum = 1 ; xform.uViewPerspective = TOP_LEFT ; m_LAniWnd.Region()->SetRgnXForm ( &xform ) ; m_LAniWnd.Region()->GetRgnBounds( &rcRGN ) ; DlgParams.ptCenter.y = RECTHEIGHT(&rcRGN) / 2 ; DlgParams.ptCenter.x = RECTWIDTH(&rcRGN) / 2 ; } else { DlgParams.ptCenter.y = m_LAniWnd.GetHeight ( ) / 2 ; DlgParams.ptCenter.x = m_LAniWnd.GetWidth ( ) / 2 ; } m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetZoomBlurParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalZoomBlur(m_hWnd); } void CDemoView::OnGaussianblur() { GAUSSIANBLURDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( GAUSSIANBLURDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof(GAUSSIANBLURDLGPARAMS); DlgParams.nRadius = 1 ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_GAUSSIANBLUR_SHOW_APPLY:0); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetGaussianBlurParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalGaussianBlur(m_hWnd); } void CDemoView::OnAntialias() { ANTIALIASDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( ANTIALIASDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof(ANTIALIASDLGPARAMS); DlgParams.uThreshold = 50 ; DlgParams.uDim = 5 ; DlgParams.uFilter = ANTIALIAS_DIAG ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_ANTIALIAS_SHOW_APPLY:0); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetAntiAliasParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalAntiAlias(m_hWnd); } void CDemoView::OnImageAverage() { AVERAGEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( AVERAGEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( AVERAGEDLGPARAMS ) ; DlgParams.uDim = 3 ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetAverageParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalAverage(m_hWnd); } void CDemoView::OnImageMedian() { MEDIANDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( MEDIANDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( MEDIANDLGPARAMS ) ; DlgParams.uDim = 3; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_MEDIAN_SHOW_APPLY:0); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetMedianParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalMedian(m_hWnd); } void CDemoView::OnImageAddnoise() { ADDNOISEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( ADDNOISEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( ADDNOISEDLGPARAMS ) ; DlgParams.uRange = 100 ; DlgParams.uChannel = CHANNEL_MASTER ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetAddNoiseParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalAddNoise(m_hWnd); } void CDemoView::OnImageFiltermax() { MAXFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( MAXFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( MAXFILTERDLGPARAMS ) ; DlgParams.uDim = 3 ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_MAXFILTER_SHOW_APPLY:0); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetMaxFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalMaxFilter(m_hWnd); } void CDemoView::OnImageFiltermin() { MINFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( MINFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( MINFILTERDLGPARAMS ) ; DlgParams.uDim = 3; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_MINFILTER_SHOW_APPLY:0); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetMinFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalMinFilter(m_hWnd); } void CDemoView::OnUnsharpmask() { UNSHARPMASKDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( UNSHARPMASKDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( UNSHARPMASKDLGPARAMS ) ; DlgParams.nAmount = 0 ; DlgParams.nRadius = 1 ; DlgParams.nThreshold = 0 ; DlgParams.uUnshrpMaskFlags = RGB_SPACE ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_UNSHARPMASK_SHOW_APPLY:0); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetUnsharpMaskParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalUnsharpMask(m_hWnd); } void CDemoView::OnImageSharpen() { SHARPENDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( SHARPENDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( SHARPENDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetSharpenParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalSharpen(m_hWnd); } void CDemoView::OnMultiply() { MULTIPLYDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( MULTIPLYDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( MULTIPLYDLGPARAMS ) ; DlgParams.uFactor = 100 ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetMultiplyParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalMultiply(m_hWnd); } void CDemoView::OnAddbitmaps() { L_INT nRet = SUCCESS_DLG_OK ; GETDIRECTORYDLGPARAMS DirectoryDlgParams ; ZeroMemory ( &DirectoryDlgParams, sizeof (GETDIRECTORYDLGPARAMS)) ; DirectoryDlgParams.uStructSize = sizeof (GETDIRECTORYDLGPARAMS); DirectoryDlgParams.pszDirectory = (L_TCHAR *) malloc ( L_MAXPATH * 2 ) ; DirectoryDlgParams.pszTitle = _T("Select Images Folder") ; DirectoryDlgParams.nBuffSize = L_MAXPATH ; DirectoryDlgParams.pszFilter = NULL ; DirectoryDlgParams.nFilterIndex = 1 ; m_LAniWnd.DialogFile()->SetDirectoryParams(&DirectoryDlgParams) ; nRet = m_LAniWnd.DialogFile()->DoModalGetDirectory ( m_hWnd) ; // Get the directory if ( nRet == SUCCESS_DLG_OK ) { DLGBITMAPLIST BitmapList ; L_INT i = 0 ; HCURSOR hCursor; hCursor = SetCursor (LoadCursor (NULL, IDC_WAIT)); BitmapList.pBitmapList = (DLGBITMAPLISTITEM *) malloc ( sizeof ( DLGBITMAPLISTITEM ) * DLG_IMAGE_LIST_COUNT ) ; if ( NULL == BitmapList.pBitmapList ) { SetCursor (hCursor); return ; } else { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { BitmapList.pBitmapList [ i ].pBitmap = (BITMAPHANDLE *) malloc ( sizeof ( BITMAPHANDLE ) ) ; BitmapList.pBitmapList [ i ].pszFileName = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; BitmapList.pBitmapList [ i ].pszDescription = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pBitmap,0, sizeof(BITMAPHANDLE)); memset(BitmapList.pBitmapList [ i ].pszFileName,0, sizeof ( L_TCHAR ) * L_MAXPATH ); memset(BitmapList.pBitmapList [ i ].pszDescription,0, sizeof ( L_TCHAR ) * L_MAXPATH ); } } if ( SUCCESS == GenerateBitampList ( DirectoryDlgParams.pszDirectory, &BitmapList, FALSE ) ) { ADDBITMAPSDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( ADDBITMAPSDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( ADDBITMAPSDLGPARAMS ) ; DlgParams.uAddBitmapsFlags = BC_AVG ; DlgParams.pBitmapList = &BitmapList ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetAddBitmapsParams(&DlgParams) ; SetCursor (hCursor); m_LAniWnd.DialogImageEffect()->DoModalAddBitmaps(m_hWnd); } else SetCursor (hCursor); // clean up if ( NULL != BitmapList.pBitmapList ) { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { if ( NULL != BitmapList.pBitmapList [ i ].pBitmap ) { if ( BitmapList.pBitmapList [ i ].pBitmap->Flags.Allocated ) { LBitmap MyTmpBtmp; MyTmpBtmp.SetHandle(BitmapList.pBitmapList [ i ].pBitmap); MyTmpBtmp.Free(); } free ( BitmapList.pBitmapList [ i ].pBitmap ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszFileName ) { free ( BitmapList.pBitmapList [ i ].pszFileName ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszDescription ) { free ( BitmapList.pBitmapList [ i ].pszDescription ) ; } } free ( BitmapList.pBitmapList ) ; } if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); return ; } else { return ; } } void CDemoView::OnStitch() { L_INT nRet = SUCCESS_DLG_OK ; GETDIRECTORYDLGPARAMS DirectoryDlgParams ; ZeroMemory ( &DirectoryDlgParams, sizeof (GETDIRECTORYDLGPARAMS)) ; DirectoryDlgParams.uStructSize = sizeof (GETDIRECTORYDLGPARAMS); DirectoryDlgParams.pszDirectory = (L_TCHAR *) malloc ( L_MAXPATH * 2 ) ; DirectoryDlgParams.pszTitle = _T("Select Images Folder") ; DirectoryDlgParams.nBuffSize = L_MAXPATH ; DirectoryDlgParams.pszFilter = NULL ; DirectoryDlgParams.nFilterIndex = 1 ; m_LAniWnd.DialogFile()->SetDirectoryParams(&DirectoryDlgParams) ; nRet = m_LAniWnd.DialogFile()->DoModalGetDirectory ( m_hWnd) ; // Get the directory if ( nRet == SUCCESS_DLG_OK ) { DLGBITMAPLIST BitmapList ; L_INT i = 0 ; HCURSOR hCursor; hCursor = SetCursor (LoadCursor (NULL, IDC_WAIT)); BitmapList.pBitmapList = (DLGBITMAPLISTITEM *) malloc ( sizeof ( DLGBITMAPLISTITEM ) * DLG_IMAGE_LIST_COUNT ) ; if ( NULL == BitmapList.pBitmapList ) { SetCursor (hCursor); return ; } else { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { BitmapList.pBitmapList [ i ].pBitmap = (BITMAPHANDLE *) malloc ( sizeof ( BITMAPHANDLE ) ) ; BitmapList.pBitmapList [ i ].pszFileName = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; BitmapList.pBitmapList [ i ].pszDescription = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pBitmap,0, sizeof(BITMAPHANDLE)); memset(BitmapList.pBitmapList [ i ].pszFileName,0, sizeof ( L_TCHAR ) * L_MAXPATH ); memset(BitmapList.pBitmapList [ i ].pszDescription,0, sizeof ( L_TCHAR ) * L_MAXPATH ); } } if ( SUCCESS == GenerateBitampList ( DirectoryDlgParams.pszDirectory, &BitmapList, FALSE ) ) { STITCHDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( STITCHDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( STITCHDLGPARAMS ); DlgParams.nResultingBitmapWidth = 320 ; DlgParams.nResultingBitmapHeight = 200 ; DlgParams.nResultingBitmapBitsPerPixel = 24 ; DlgParams.nRes = 72 ; DlgParams.crBackGround = RGB ( 255, 255, 255 ) ; DlgParams.pBitmapList = &BitmapList ; DlgParams.uDlgFlags = 0 ; DlgParams.nCmdShow = SW_SHOW ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->SetStitchParams(&DlgParams) ; SetCursor (hCursor); L_INT nTtt = m_LAniWnd.DialogImageEffect()->DoModalStitch(m_hWnd); } else SetCursor (hCursor); // clean up for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { if ( NULL != BitmapList.pBitmapList [ i ].pBitmap ) { if ( BitmapList.pBitmapList [ i ].pBitmap->Flags.Allocated ) { LBitmap MyTmpBtmp; MyTmpBtmp.SetHandle(BitmapList.pBitmapList [ i ].pBitmap); MyTmpBtmp.Free(); } free ( BitmapList.pBitmapList [ i ].pBitmap ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszFileName ) { free ( BitmapList.pBitmapList [ i ].pszFileName ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszDescription ) { free ( BitmapList.pBitmapList [ i ].pszDescription ) ; } } if ( NULL != BitmapList.pBitmapList ) { free ( BitmapList.pBitmapList ) ; } return ; } else { return ; } } void CDemoView::OnFreehandwave() { FREEHANDWAVEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( FREEHANDWAVEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( FREEHANDWAVEDLGPARAMS ) ; DlgParams.uScale = 100 ; DlgParams.uWaveLen = 100 ; DlgParams.uFreeHandWaveFlags = FILL_RPT | DIS_PER ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_FREEHANDWAVE_SHOW_APPLY:0); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetFreeHandWaveParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalFreeHandWave(m_hWnd); } void CDemoView::OnWind() { WINDDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( WINDDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( WINDDLGPARAMS ) ; DlgParams.uDim = 1 ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_WIND_SHOW_APPLY:0); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetWindParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalWind(m_hWnd); } void CDemoView::OnPolar() { POLARDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( POLARDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( POLARDLGPARAMS ) ; DlgParams.uPolarFlags = FILL_CLR | CART_TO_POL ; DlgParams.crFill = RGB(0,0,0); DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_POLAR_SHOW_APPLY:0); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetPolarParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalPolar(m_hWnd); } void CDemoView::OnZoomwave() { ZOOMWAVEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( ZOOMWAVEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( ZOOMWAVEDLGPARAMS ) ; DlgParams.uAmplitude = 1 ; DlgParams.uFrequency = 1 ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_ZOOMWAVE_SHOW_APPLY:0); if ( m_LAniWnd.HasRgn ( ) ) { RECT rcRGN ; RGNXFORM xform ; xform.nXOffset = 0 ; xform.nYOffset = 0 ; xform.nXScalarDen = 1 ; xform.nXScalarNum = 1 ; xform.nYScalarDen = 1 ; xform.nYScalarNum = 1 ; xform.uViewPerspective = TOP_LEFT ; m_LAniWnd.Region()->SetRgnXForm ( &xform ) ; m_LAniWnd.Region()->GetRgnBounds( &rcRGN ) ; DlgParams.ptCenter.y = RECTHEIGHT(&rcRGN) / 2 ; DlgParams.ptCenter.x = RECTWIDTH(&rcRGN) / 2 ; } else { DlgParams.ptCenter.y = m_LAniWnd.GetHeight ( ) / 2 ; DlgParams.ptCenter.x = m_LAniWnd.GetWidth ( ) / 2 ; } DlgParams.uZoomWaveFlags = FILL_CLR ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetZoomWaveParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalZoomWave(m_hWnd); } void CDemoView::OnRadialwave() { RADIALWAVEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( RADIALWAVEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( RADIALWAVEDLGPARAMS ) ; DlgParams.uAmplitude = 1 ; DlgParams.uWaveLen = 100 ; DlgParams.nPhase = 0 ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_RADIALWAVE_SHOW_APPLY:0); if ( m_LAniWnd.HasRgn ( ) ) { RECT rcRGN ; RGNXFORM xform ; xform.nXOffset = 0 ; xform.nYOffset = 0 ; xform.nXScalarDen = 1 ; xform.nXScalarNum = 1 ; xform.nYScalarDen = 1 ; xform.nYScalarNum = 1 ; xform.uViewPerspective = TOP_LEFT ; m_LAniWnd.Region()->SetRgnXForm ( &xform ) ; m_LAniWnd.Region()->GetRgnBounds( &rcRGN ) ; DlgParams.ptCenter.y = RECTHEIGHT(&rcRGN) / 2 ; DlgParams.ptCenter.x = RECTWIDTH(&rcRGN) / 2 ; } else { DlgParams.ptCenter.y = m_LAniWnd.GetHeight ( ) / 2 ; DlgParams.ptCenter.x = m_LAniWnd.GetWidth ( ) / 2 ; } DlgParams.uRadialWaveFlags = FILL_RPT | DIS_PER ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetRadialWaveParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalRadialWave(m_hWnd); } void CDemoView::OnSwirl() { SWIRLDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( SWIRLDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( SWIRLDLGPARAMS ) ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_SWIRL_SHOW_APPLY:0); if ( m_LAniWnd.HasRgn ( ) ) { RECT rcRGN ; RGNXFORM xform ; xform.nXOffset = 0 ; xform.nYOffset = 0 ; xform.nXScalarDen = 1 ; xform.nXScalarNum = 1 ; xform.nYScalarDen = 1 ; xform.nYScalarNum = 1 ; xform.uViewPerspective = TOP_LEFT ; m_LAniWnd.Region()->SetRgnXForm ( &xform ) ; m_LAniWnd.Region()->GetRgnBounds( &rcRGN ) ; DlgParams.ptCenter.y = RECTHEIGHT(&rcRGN) / 2 ; DlgParams.ptCenter.x = RECTWIDTH(&rcRGN) / 2 ; } else { DlgParams.ptCenter.y = m_LAniWnd.GetHeight ( ) / 2 ; DlgParams.ptCenter.x = m_LAniWnd.GetWidth ( ) / 2 ; } m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetSwirlParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalSwirl(m_hWnd); } void CDemoView::OnWave() { WAVEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( WAVEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( WAVEDLGPARAMS ) ; DlgParams.uAmplitude = 1 ; DlgParams.uWaveLen = 100 ; DlgParams.nAngle = 0 ; DlgParams.uHorzScale = 100 ; DlgParams.uVertScale = 100 ; DlgParams.uWaveFlags = FILL_CLR | DIS_PER | WV_SIN ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_WAVE_SHOW_APPLY:0); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetWaveParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalWave(m_hWnd); } void CDemoView::OnWaveshear() { WAVESHEARDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( WAVESHEARDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( WAVESHEARDLGPARAMS ) ; DlgParams.uScale = 50 ; DlgParams.uWaveShearFlags = FILL_CLR | SHR_VERT ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetWaveShearParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalWaveShear(m_hWnd); } void CDemoView::OnImageEmboss() { EMBOSSDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( EMBOSSDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( EMBOSSDLGPARAMS ) ; DlgParams.uDirection = EMBOSS_N ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetEmbossParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalEmboss(m_hWnd); } void CDemoView::OnPunch() { PUNCHDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( PUNCHDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( PUNCHDLGPARAMS ) ; DlgParams.nValue = 0 ; DlgParams.uStress = 1 ; DlgParams.uPunchFlags = FILL_CLR | FILL_WOUTROT ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_PUNCH_SHOW_APPLY:0); if ( m_LAniWnd.HasRgn ( ) ) { RECT rcRGN ; RGNXFORM xform ; xform.nXOffset = 0 ; xform.nYOffset = 0 ; xform.nXScalarDen = 1 ; xform.nXScalarNum = 1 ; xform.nYScalarDen = 1 ; xform.nYScalarNum = 1 ; xform.uViewPerspective = TOP_LEFT ; m_LAniWnd.Region()->SetRgnXForm ( &xform ) ; m_LAniWnd.Region()->GetRgnBounds( &rcRGN ) ; DlgParams.ptCenter.y = RECTHEIGHT(&rcRGN) / 2 ; DlgParams.ptCenter.x = RECTWIDTH(&rcRGN) / 2 ; } else { DlgParams.ptCenter.y = m_LAniWnd.GetHeight ( ) / 2 ; DlgParams.ptCenter.x = m_LAniWnd.GetWidth ( ) / 2 ; } m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetPunchParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalPunch(m_hWnd); } void CDemoView::OnRipple() { RIPPLEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( RIPPLEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( RIPPLEDLGPARAMS ) ; DlgParams.uAmplitude = 0 ; DlgParams.uFrequency = 1 ; DlgParams.nPhase = 0 ; DlgParams.uAttenuation = 0 ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_RIPPLE_SHOW_APPLY:0); if ( m_LAniWnd.HasRgn ( ) ) { RECT rcRGN ; RGNXFORM xform ; xform.nXOffset = 0 ; xform.nYOffset = 0 ; xform.nXScalarDen = 1 ; xform.nXScalarNum = 1 ; xform.nYScalarDen = 1 ; xform.nYScalarNum = 1 ; xform.uViewPerspective = TOP_LEFT ; m_LAniWnd.Region()->SetRgnXForm ( &xform ) ; m_LAniWnd.Region()->GetRgnBounds( &rcRGN ) ; DlgParams.ptCenter.y = RECTHEIGHT(&rcRGN) / 2 ; DlgParams.ptCenter.x = RECTWIDTH(&rcRGN) / 2 ; } else { DlgParams.ptCenter.y = m_LAniWnd.GetHeight ( ) / 2 ; DlgParams.ptCenter.x = m_LAniWnd.GetWidth ( ) / 2 ; } DlgParams.uRippleFlag = FILL_CLR ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetRippleParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalRipple(m_hWnd); } void CDemoView::OnCylindrical() { CYLINDRICALDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( CYLINDRICALDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( CYLINDRICALDLGPARAMS ) ; DlgParams.nValue = 0 ; DlgParams.uType = CYL_HORZ ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_CYLINDRICAL_SHOW_APPLY:0); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetCylindricalParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalCylindrical(m_hWnd); } void CDemoView::OnBending() { BENDINGDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( BENDINGDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( BENDINGDLGPARAMS ) ; DlgParams.nValue = 0 ; DlgParams.crFill = RGB (0,0,0) ; DlgParams.uBendingFlags = BND_NORM | FILL_CLR | FILL_WOUTROT ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_BENDING_SHOW_APPLY:0); if ( m_LAniWnd.HasRgn() ) { RECT rcRGN ; RGNXFORM xform ; xform.nXOffset = 0 ; xform.nYOffset = 0 ; xform.nXScalarDen = 1 ; xform.nXScalarNum = 1 ; xform.nYScalarDen = 1 ; xform.nYScalarNum = 1 ; xform.uViewPerspective = TOP_LEFT ; m_LAniWnd.Region()->SetRgnXForm ( &xform ) ; m_LAniWnd.Region()->GetRgnBounds( &rcRGN ) ; DlgParams.ptCenter.y = RECTHEIGHT(&rcRGN) / 2 ; DlgParams.ptCenter.x = RECTWIDTH(&rcRGN) / 2 ; } else { DlgParams.ptCenter.y = m_LAniWnd.GetHeight ( ) / 2 ; DlgParams.ptCenter.x = m_LAniWnd.GetWidth ( ) / 2 ; } m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetBendingParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalBending(m_hWnd); } void CDemoView::OnSpherize() { SPHERIZEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( SPHERIZEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( SPHERIZEDLGPARAMS ) ; DlgParams.nValue = 0 ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_SPHERIZE_SHOW_APPLY:0); if ( m_LAniWnd.HasRgn ( ) ) { RECT rcRGN ; RGNXFORM xform ; xform.nXOffset = 0 ; xform.nYOffset = 0 ; xform.nXScalarDen = 1 ; xform.nXScalarNum = 1 ; xform.nYScalarDen = 1 ; xform.nYScalarNum = 1 ; xform.uViewPerspective = TOP_LEFT ; m_LAniWnd.Region()->SetRgnXForm ( &xform ) ; m_LAniWnd.Region()->GetRgnBounds( &rcRGN ) ; DlgParams.ptCenter.y = RECTHEIGHT(&rcRGN) / 2 ; DlgParams.ptCenter.x = RECTWIDTH(&rcRGN) / 2 ; } else { DlgParams.ptCenter.y = m_LAniWnd.GetHeight ( ) / 2 ; DlgParams.ptCenter.x = m_LAniWnd.GetWidth ( ) / 2 ; } DlgParams.uSpherizeFlags = FILL_CLR | FILL_WOUTROT ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetSpherizeParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalSpherize(m_hWnd); } void CDemoView::OnImpression() { IMPRESSIONISTDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( IMPRESSIONISTDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( IMPRESSIONISTDLGPARAMS ) ; DlgParams.uHorzDim = 1 ; DlgParams.uVertDim = 1 ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetImpressionistParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalImpressionist(m_hWnd); } void CDemoView::OnImageOilify() { OILIFYDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( OILIFYDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( OILIFYDLGPARAMS ) ; DlgParams.uDim = 3 ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_OILIFY_SHOW_APPLY:0); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetOilifyParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalOilify(m_hWnd); } void CDemoView::OnImageUnderlay() { L_INT nRet = SUCCESS_DLG_OK ; GETDIRECTORYDLGPARAMS DirectoryDlgParams ; ZeroMemory ( &DirectoryDlgParams, sizeof (GETDIRECTORYDLGPARAMS)) ; DirectoryDlgParams.uStructSize = sizeof (GETDIRECTORYDLGPARAMS); DirectoryDlgParams.pszDirectory = (L_TCHAR *) malloc ( L_MAXPATH * 2 ) ; DirectoryDlgParams.pszTitle = _T("Select Images Folder") ; DirectoryDlgParams.nBuffSize = L_MAXPATH ; DirectoryDlgParams.pszFilter = NULL ; DirectoryDlgParams.nFilterIndex = 1 ; m_LAniWnd.DialogFile()->SetDirectoryParams(&DirectoryDlgParams) ; nRet = m_LAniWnd.DialogFile()->DoModalGetDirectory ( m_hWnd) ; // Get the directory if ( nRet == SUCCESS_DLG_OK ) { DLGBITMAPLIST BitmapList ; L_INT i = 0 ; HCURSOR hCursor; hCursor = SetCursor (LoadCursor (NULL, IDC_WAIT)); BitmapList.pBitmapList = (DLGBITMAPLISTITEM *) malloc ( sizeof ( DLGBITMAPLISTITEM ) * DLG_IMAGE_LIST_COUNT ) ; if ( NULL == BitmapList.pBitmapList ) { SetCursor (hCursor); return ; } else { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { BitmapList.pBitmapList [ i ].pBitmap = (BITMAPHANDLE *) malloc ( sizeof ( BITMAPHANDLE ) ) ; BitmapList.pBitmapList [ i ].pszFileName = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; BitmapList.pBitmapList [ i ].pszDescription = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pBitmap,0, sizeof(BITMAPHANDLE)); memset(BitmapList.pBitmapList [ i ].pszFileName,0, sizeof ( L_TCHAR ) * L_MAXPATH ); memset(BitmapList.pBitmapList [ i ].pszDescription,0, sizeof ( L_TCHAR ) * L_MAXPATH ); } } if ( SUCCESS == GenerateBitampList ( DirectoryDlgParams.pszDirectory, &BitmapList, TRUE ) ) { UNDERLAYDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( UNDERLAYDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( UNDERLAYDLGPARAMS ) ; DlgParams.pBitmapList = &BitmapList ; DlgParams.nUnderlayBitmapIndex = 0; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetUnderlayParams(&DlgParams) ; SetCursor (hCursor); m_LAniWnd.DialogImageEffect()->DoModalUnderlay(m_hWnd); } else SetCursor (hCursor); // clean up for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { if ( NULL != BitmapList.pBitmapList [ i ].pBitmap ) { if ( BitmapList.pBitmapList [ i ].pBitmap->Flags.Allocated ) { LBitmap MyTmpBtmp; MyTmpBtmp.SetHandle(BitmapList.pBitmapList [ i ].pBitmap); MyTmpBtmp.Free(); } free ( BitmapList.pBitmapList [ i ].pBitmap ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszFileName ) { free ( BitmapList.pBitmapList [ i ].pszFileName ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszDescription ) { free ( BitmapList.pBitmapList [ i ].pszDescription ) ; } } if ( NULL != BitmapList.pBitmapList ) { free ( BitmapList.pBitmapList ) ; } return ; } else { return ; } } void CDemoView::OnPixelate() { PIXELATEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( PIXELATEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( PIXELATEDLGPARAMS ) ; DlgParams.uCellHeight = 1 ; DlgParams.uCellWidth = 1 ; DlgParams.uOpacity = 100 ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_PIXELATE_SHOW_APPLY:0); if ( m_LAniWnd.HasRgn ( ) ) { RECT rcRGN ; RGNXFORM xform ; xform.nXOffset = 0 ; xform.nYOffset = 0 ; xform.nXScalarDen = 1 ; xform.nXScalarNum = 1 ; xform.nYScalarDen = 1 ; xform.nYScalarNum = 1 ; xform.uViewPerspective = TOP_LEFT ; m_LAniWnd.Region()->SetRgnXForm ( &xform ) ; m_LAniWnd.Region()->GetRgnBounds( &rcRGN ) ; DlgParams.ptCenter.y = RECTHEIGHT(&rcRGN) / 2 ; DlgParams.ptCenter.x = RECTWIDTH(&rcRGN) / 2 ; } else { DlgParams.ptCenter.y = m_LAniWnd.GetHeight ( ) / 2 ; DlgParams.ptCenter.x = m_LAniWnd.GetWidth ( ) / 2 ; } DlgParams.uPixelateFlags = PIX_AVR | PIX_RECT | PIX_WPER | PIX_HPER ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetPixelateParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalPixelate(m_hWnd); } void CDemoView::OnImageMosaic() { MOSAICDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( MOSAICDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( MOSAICDLGPARAMS ) ; DlgParams.uDim = 3 ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetMosaicParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalMosaic(m_hWnd); } void CDemoView::OnColorPicturize() { PICTURIZEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( PICTURIZEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( PICTURIZEDLGPARAMS ) ; DlgParams.nCellHeight = 10 ; DlgParams.nCellWidth = 10 ; DlgParams.nBitmapHeight = m_LAniWnd.GetHeight ( ) ; DlgParams.nBitmapWidth = m_LAniWnd.GetWidth ( ) ; DlgParams.uResize = PICTURIZE_RESIZE ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetPicturizeParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalPicturize(m_hWnd); } void CDemoView::OnEdgedetect() { EDGEDETECTORDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( EDGEDETECTORDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( EDGEDETECTORDLGPARAMS ) ; DlgParams.uFilter = EDG_SOBEL_VERT ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetEdgeDetectorParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalEdgeDetector(m_hWnd); } void CDemoView::OnImageErosion() { EROSIONFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( EROSIONFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( EROSIONFILTERDLGPARAMS ) ; DlgParams.pFilter = BFLT_EROSION_OMNI ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetErosionFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalErosionFilter(m_hWnd); } void CDemoView::OnImageDilation() { DILATIONFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( DILATIONFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( DILATIONFILTERDLGPARAMS ) ; DlgParams.pFilter = BFLT_DILATION_OMNI ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetDilationFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalDilationFilter(m_hWnd); } void CDemoView::OnColorContour() { CONTOURFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( CONTOURFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( CONTOURFILTERDLGPARAMS ) ; DlgParams.nThreshold = 15 ; DlgParams.nDeltaDirection = 35 ; DlgParams.nMaxError = 5 ; DlgParams.nOption = CONTOUR_THIN ; DlgParams.uOptionFlags = DLG_CONTOURFILTER_SHOW_OPTION_ALL ; DlgParams.uDlgFlags = DLG_CONTOURFILTER_SHOW_DELTADIRECTION | DLG_CONTOURFILTER_SHOW_MAXIMUMERROR | DLG_CONTOURFILTER_SHOW_OPTION | DLG_CONTOURFILTER_SHOW_THRESHOLD| (pTheApp->m_bDlgEnableApply?DLG_CONTOURFILTER_SHOW_APPLY:0); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetContourFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalContourFilter(m_hWnd); } void CDemoView::OnImageGradient() { GRADIENTFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( GRADIENTFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( GRADIENTFILTERDLGPARAMS ) ; DlgParams.pFilter = FLT_GRADIENT_N ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetGradientFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalGradientFilter(m_hWnd); } void CDemoView::OnImageLaplacian() { LAPLACIANFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( LAPLACIANFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( LAPLACIANFILTERDLGPARAMS ) ; DlgParams.pFilter = FLT_LAPLACE_1 ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetLaplacianFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalLaplacianFilter(m_hWnd); } void CDemoView::OnImageSobel() { SOBELFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( SOBELFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( SOBELFILTERDLGPARAMS ) ; DlgParams.pFilter = FLT_SOBEL_HORZ ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetSobelFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalSobelFilter(m_hWnd); } void CDemoView::OnImagePrewit() { PREWITTFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( PREWITTFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( PREWITTFILTERDLGPARAMS ) ; DlgParams.pFilter = FLT_PREWITT_HORZ ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetPrewittFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalPrewittFilter(m_hWnd); } void CDemoView::OnImageShitdiff() { SHIFTDIFFERENCEFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( SHIFTDIFFERENCEFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( SHIFTDIFFERENCEFILTERDLGPARAMS ) ; DlgParams.pFilter = FLT_SHIFTDIFF_DIAG ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetShiftDifferenceFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalShiftDifferenceFilter(m_hWnd); } void CDemoView::OnImageLinesegment() { LINESEGMENTFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( LINESEGMENTFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( LINESEGMENTFILTERDLGPARAMS ) ; DlgParams.pFilter = FLT_LINESEG_HORZ ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImageEffect()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImageEffect()->SetLineSegmentFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalLineSegmentFilter(m_hWnd); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // Color // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnColorBrightness() { BRIGHTNESSDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( BRIGHTNESSDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( BRIGHTNESSDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->SetBrightnessParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalBrightness(m_hWnd); } void CDemoView::OnColorContrast() { CONTRASTDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( CONTRASTDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( CONTRASTDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->SetContrastParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalContrast(m_hWnd); } void CDemoView::OnColorFill() { COLORREF dwColor = RGB (0, 0, 0); m_LAniWnd.Fill(dwColor); } void CDemoView::OnColorGamma() { GAMMAADJUSTMENTDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( GAMMAADJUSTMENTDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( GAMMAADJUSTMENTDLGPARAMS ) ; DlgParams.nRedValue = 150 ; DlgParams.nGreenValue = 150 ; DlgParams.nBlueValue = 150 ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->SetGammaAdjustmentParams(&DlgParams) ; OnRgnCancel(); m_LAniWnd.DialogColor()->DoModalGammaAdjustment(m_hWnd); } void CDemoView::OnBalancecolors() { BALANCECOLORSDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(BALANCECOLORSDLGPARAMS)); DlgParams.uStructSize = sizeof ( BALANCECOLORSDLGPARAMS ) ; DlgParams.RedFactor.uStructSize = sizeof ( BALANCING ) ; DlgParams.GreenFactor.uStructSize = sizeof ( BALANCING ) ; DlgParams.BlueFactor.uStructSize = sizeof ( BALANCING ) ; DlgParams.RedFactor.toRed = 1 ; DlgParams.GreenFactor.toGreen = 1 ; DlgParams.BlueFactor.toBlue = 1 ; m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->SetBalanceColorParams(&DlgParams); int a = m_LAniWnd.DialogColor()->DoModalBalanceColors(m_hWnd); } void CDemoView::OnGrayscale() { GRAYSCALEDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(GRAYSCALEDLGPARAMS)); DlgParams.uStructSize = sizeof ( GRAYSCALEDLGPARAMS ) ; DlgParams.nRedFactor = 250 ; DlgParams.nGreenFactor = 625 ; DlgParams.nBlueFactor = 125 ; m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->SetGrayScaleParams(&DlgParams); m_LAniWnd.DialogColor()->DoModalGrayScale(m_hWnd); } void CDemoView::OnColoredgray() { COLOREDGRAYDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( COLOREDGRAYDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( COLOREDGRAYDLGPARAMS ) ; DlgParams.nRedFactor = 250 ; DlgParams.nGreenFactor = 625 ; DlgParams.nBlueFactor = 125 ; DlgParams.nRedGrayFactor = 300 ; DlgParams.nGreenGrayFactor = 200 ; DlgParams.nBlueGrayFactor = 100 ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->SetColoredGrayParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalColoredGray(m_hWnd); } void CDemoView::OnRemapintensity() { REMAPINTENSITYDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(REMAPINTENSITYDLGPARAMS)); DlgParams.uStructSize = sizeof ( REMAPINTENSITYDLGPARAMS ) ; DlgParams.uChannel = CHANNEL_MASTER ; m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->SetRemapIntensityParams(&DlgParams); m_LAniWnd.DialogColor()->DoModalRemapIntensity(m_hWnd); } void CDemoView::OnRemaphue() { REMAPHUEDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(REMAPHUEDLGPARAMS)); DlgParams.uStructSize = sizeof ( REMAPHUEDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->SetRemapHueParams(&DlgParams); m_LAniWnd.DialogColor()->DoModalRemapHue(m_hWnd); } void CDemoView::OnLocalequalize() { LOCALHISTOEQUALIZEDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(LOCALHISTOEQUALIZEDLGPARAMS)); DlgParams.uStructSize = sizeof ( LOCALHISTOEQUALIZEDLGPARAMS ) ; DlgParams.uType = RGB_SPACE ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_LOCALHISTOEQUALIZE_SHOW_APPLY:0); if ( m_LAniWnd.HasRgn ( ) ) { RECT rcRGN ; RGNXFORM xform ; xform.nXOffset = 0 ; xform.nYOffset = 0 ; xform.nXScalarDen = 1 ; xform.nXScalarNum = 1 ; xform.nYScalarDen = 1 ; xform.nYScalarNum = 1 ; xform.uViewPerspective = TOP_LEFT ; m_LAniWnd.Region()->SetRgnXForm ( &xform ) ; m_LAniWnd.Region()->GetRgnBounds( &rcRGN ) ; DlgParams.nHeight = RECTHEIGHT(&rcRGN) / 2 ; DlgParams.nWidth = RECTWIDTH(&rcRGN) / 2 ; } else { DlgParams.nHeight = m_LAniWnd.GetHeight ( ) / 2 ; DlgParams.nWidth = m_LAniWnd.GetWidth ( ) / 2 ; } m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->SetLocalHistoEqualizeParams(&DlgParams); m_LAniWnd.DialogColor()->DoModalLocalHistoEqualize(m_hWnd); } void CDemoView::OnPaletteeditor() { L_INT nRet; CUSTOMIZEPALETTEDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(CUSTOMIZEPALETTEDLGPARAMS)); DlgParams.uStructSize = sizeof ( CUSTOMIZEPALETTEDLGPARAMS ) ; DlgParams.hpalUser = m_LAniWnd.DupPalette () ; DlgParams.uDlgFlags = DLG_CUSTOMIZEPALETTE_SHOW_SORT | DLG_CUSTOMIZEPALETTE_SHOW_FINDCLOSEST | DLG_CUSTOMIZEPALETTE_SHOW_ADDOPTION | DLG_CUSTOMIZEPALETTE_SHOW_REMOVEOPTION | DLG_CUSTOMIZEPALETTE_SHOW_COLORMODEL | DLG_CUSTOMIZEPALETTE_SHOW_RGBLEFTPAN | DLG_CUSTOMIZEPALETTE_SHOW_HTMLLEFTPAN | DLG_CUSTOMIZEPALETTE_SHOW_INDEXLEFTPAN | DLG_CUSTOMIZEPALETTE_SHOW_RGBRIGHTPAN | DLG_CUSTOMIZEPALETTE_SHOW_HTMLRIGHTPAN | DLG_CUSTOMIZEPALETTE_SHOW_INDEXRIGHTPAN | DLG_CUSTOMIZEPALETTE_SHOW_NEW | DLG_CUSTOMIZEPALETTE_SHOW_OPEN | DLG_CUSTOMIZEPALETTE_SHOW_SAVE | DLG_CUSTOMIZEPALETTE_SHOW_SAVEAS | DLG_CUSTOMIZEPALETTE_GENERATE_PALETTE ; m_LAniWnd.DialogColor()->SetCustomizePaletteParams(&DlgParams); nRet = m_LAniWnd.DialogColor()->DoModalCustomizePalette(m_hWnd); m_LAniWnd.DialogColor()->GetCustomizePaletteParams(&DlgParams, sizeof(DlgParams)); if ( NULL != DlgParams.hpalUser ) { DeleteObject ( DlgParams.hpalUser ) ; } } void CDemoView::OnFillwhite() { COLORREF dwColor = RGB (255, 255, 255); m_LAniWnd.Fill(dwColor); } void CDemoView::OnFillred() { COLORREF dwColor = RGB (255, 0, 0); m_LAniWnd.Fill(dwColor); } void CDemoView::OnFillgreen() { COLORREF dwColor = RGB (0, 255, 0); m_LAniWnd.Fill(dwColor); } void CDemoView::OnFillblue() { COLORREF dwColor = RGB (0, 0, 255); m_LAniWnd.Fill(dwColor); } void CDemoView::OnFillcyan() { COLORREF dwColor = RGB (0, 255, 255); m_LAniWnd.Fill(dwColor); } void CDemoView::OnFillmagenta() { COLORREF dwColor = RGB (255, 0, 255); m_LAniWnd.Fill(dwColor); } void CDemoView::OnFillyellow() { COLORREF dwColor = RGB (255, 255, 0); m_LAniWnd.Fill(dwColor); } void CDemoView::OnColorGray12() { BeginWaitCursor() ; m_LAniWnd.GrayScale(12); EndWaitCursor() ; } void CDemoView::OnColorGray16() { BeginWaitCursor() ; m_LAniWnd.GrayScale(16); EndWaitCursor() ; } void CDemoView::OnColorGray8() { BeginWaitCursor() ; m_LAniWnd.GrayScale(8); EndWaitCursor() ; } void CDemoView::OnUpdateColorGray12(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorGray16(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorGray8(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnColorHalftone() { DLGBITMAPLIST BitmapList ; L_INT i = 0 ; L_INT nRet = SUCCESS_DLG_OK ; GETDIRECTORYDLGPARAMS DirectoryDlgParams ; LBitmapList LbitmapList; ZeroMemory ( &DirectoryDlgParams, sizeof (GETDIRECTORYDLGPARAMS)) ; HALFTONEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( HALFTONEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( HALFTONEDLGPARAMS ); DirectoryDlgParams.uStructSize = sizeof (GETDIRECTORYDLGPARAMS); DirectoryDlgParams.pszDirectory = (L_TCHAR *) malloc ( L_MAXPATH * 2 ) ; DirectoryDlgParams.pszTitle = _T("Select Images Folder") ; DirectoryDlgParams.nBuffSize = L_MAXPATH ; DirectoryDlgParams.pszFilter = NULL ; DirectoryDlgParams.nFilterIndex = 1 ; m_LAniWnd.DialogFile()->SetDirectoryParams(&DirectoryDlgParams) ; nRet = m_LAniWnd.DialogFile()->DoModalGetDirectory ( m_hWnd) ; // Get the HalfTone directory if ( nRet == SUCCESS_DLG_OK ) { L_INT i = 0 ; HCURSOR hCursor; hCursor = SetCursor (LoadCursor (NULL, IDC_WAIT)); BitmapList.pBitmapList = (DLGBITMAPLISTITEM *) malloc ( sizeof ( DLGBITMAPLISTITEM ) * DLG_IMAGE_LIST_COUNT ) ; if ( NULL == BitmapList.pBitmapList ) { SetCursor (hCursor); return ; } else { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { BitmapList.pBitmapList [ i ].pBitmap = (BITMAPHANDLE *) malloc ( sizeof ( BITMAPHANDLE ) ) ; BitmapList.pBitmapList [ i ].pszFileName = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; BitmapList.pBitmapList [ i ].pszDescription = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pBitmap,0, sizeof(BITMAPHANDLE)); memset(BitmapList.pBitmapList [ i ].pszFileName,0, sizeof ( L_TCHAR ) * L_MAXPATH ); memset(BitmapList.pBitmapList [ i ].pszDescription,0, sizeof ( L_TCHAR ) * L_MAXPATH ); } BitmapList.nCount = DLG_IMAGE_LIST_COUNT ; } if ( SUCCESS == GenerateBitampList ( DirectoryDlgParams.pszDirectory, &BitmapList, TRUE ) ) { LbitmapList.Create(); DlgParams.pBitmapList = &BitmapList; DlgParams.hList = LbitmapList.GetHandle(); DlgParams.nAngle = 0 ; DlgParams.uType = HT_PRINT ; DlgParams.uDlgFlags = 0; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->SetHalfToneParams(&DlgParams) ; SetCursor (hCursor); m_LAniWnd.DialogColor()->DoModalHalfTone(m_hWnd); } else { SetCursor (hCursor); DlgParams.pBitmapList = NULL; } // clean up if ( LbitmapList.IsCreated ( ) ) LbitmapList.Destroy(); if ( NULL != BitmapList.pBitmapList ) { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT; i++ ) { if ( NULL != BitmapList.pBitmapList [ i ].pBitmap ) { if ( BitmapList.pBitmapList [ i ].pBitmap->Flags.Allocated ) { LBitmap MyTmpBtmp; MyTmpBtmp.SetHandle(BitmapList.pBitmapList [ i ].pBitmap); MyTmpBtmp.Free(); } free ( BitmapList.pBitmapList [ i ].pBitmap ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszDescription ) { free ( BitmapList.pBitmapList [ i ].pszDescription ) ; } } free ( BitmapList.pBitmapList ) ; } } } void CDemoView::OnUpdateColorHalftone(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnColorHistocontrast() { HISTOCONTRASTDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( HISTOCONTRASTDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( HISTOCONTRASTDLGPARAMS ) ; DlgParams.nChange = 0 ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->SetHistoContrastParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalHistoContrast(m_hWnd); } void CDemoView::OnColorHistoequalize() { BeginWaitCursor() ; m_LAniWnd.HistoEqualize(YUV_SPACE); EndWaitCursor() ; } void CDemoView::OnColorHue() { HUEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( HUEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( HUEDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->SetHueParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalHue(m_hWnd); } void CDemoView::OnColorIntensitydetect() { INTENSITYDETECTDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( INTENSITYDETECTDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( INTENSITYDETECTDLGPARAMS ) ; DlgParams.uLow = 128 ; DlgParams.uHigh = 255 ; DlgParams.crInColor = RGB ( 0, 0, 0 ) ; DlgParams.crOutColor = RGB(255, 255, 255) ; DlgParams.uChannel = IDB_CHANNEL_MASTER ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->SetIntensityDetectdParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalIntensityDetect(m_hWnd); } void CDemoView::OnColorIntensitystretch() { BeginWaitCursor() ; m_LAniWnd.StretchIntensity(); EndWaitCursor() ; } void CDemoView::OnColorInvert() { BeginWaitCursor() ; m_LAniWnd.Invert(); EndWaitCursor() ; } void CDemoView::OnColorResolution() { COLORRESDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( COLORRESDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( COLORRESDLGPARAMS ) ; DlgParams.uDlgFlagsEx = DLG_COLORRES_SHOW_BITALL | DLG_COLORRES_SHOW_DITHER_ALL | DLG_COLORRES_SHOW_PAL_ALL ; DlgParams.uDlgFlags = DLG_COLORRES_SHOW_OPENPALFILE | DLG_COLORRES_SHOW_ORDER; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->SetColorResParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalColorRes(m_hWnd); } void CDemoView::OnUpdateColorResolution(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnColorSaturation() { SATURATIONDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( SATURATIONDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( SATURATIONDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->SetSaturationParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalSaturation(m_hWnd); } void CDemoView::OnColorSepalpha() { BeginWaitCursor() ; LBitmap Bitmap; Bitmap.CreateAlphaBitmap(m_LAniWnd); pTheApp->CreateNewBitmapWindow(_T("Alpha Bitmap"),&Bitmap); EndWaitCursor() ; } void CDemoView::OnColorSepcmy() { LBitmap LBitmapColorPlanes[3]; if(m_LAniWnd.ColorSeparate(LBitmapColorPlanes, sizeof(BITMAPHANDLE),COLORSEP_CMY)==SUCCESS) { pTheApp->CreateNewBitmapWindow(_T("Cyan Plane"),&LBitmapColorPlanes[0]); pTheApp->CreateNewBitmapWindow(_T("Magenta Plane"),&LBitmapColorPlanes[1]); pTheApp->CreateNewBitmapWindow(_T("Yellow Plane"),&LBitmapColorPlanes[2]); } } void CDemoView::OnColorSepcmyk() { LBitmap LBitmapColorPlanes[4]; if(m_LAniWnd.ColorSeparate(LBitmapColorPlanes, sizeof(BITMAPHANDLE),COLORSEP_CMYK)==SUCCESS) { pTheApp->CreateNewBitmapWindow(_T("Cyan Plane"),&LBitmapColorPlanes[0]); pTheApp->CreateNewBitmapWindow(_T("Magenta Plane"),&LBitmapColorPlanes[1]); pTheApp->CreateNewBitmapWindow(_T("Yellow Plane"),&LBitmapColorPlanes[2]); pTheApp->CreateNewBitmapWindow(_T("Black Plane"),&LBitmapColorPlanes[3]); } } void CDemoView::OnColorSephls() { LBitmap LBitmapColorPlanes[3]; if(m_LAniWnd.ColorSeparate(LBitmapColorPlanes, sizeof(BITMAPHANDLE),COLORSEP_HLS)==SUCCESS) { pTheApp->CreateNewBitmapWindow(_T("Hue Plane"),&LBitmapColorPlanes[0]); pTheApp->CreateNewBitmapWindow(_T("Lightness Plane"),&LBitmapColorPlanes[1]); pTheApp->CreateNewBitmapWindow(_T("Saturation Plane"),&LBitmapColorPlanes[2]); } } void CDemoView::OnColorSephsv() { LBitmap LBitmapColorPlanes[3]; if(m_LAniWnd.ColorSeparate(LBitmapColorPlanes, sizeof(BITMAPHANDLE),COLORSEP_HSV)==SUCCESS) { pTheApp->CreateNewBitmapWindow(_T("Hue Plane"),&LBitmapColorPlanes[0]); pTheApp->CreateNewBitmapWindow(_T("Saturation Plane"),&LBitmapColorPlanes[1]); pTheApp->CreateNewBitmapWindow(_T("Value Plane"),&LBitmapColorPlanes[2]); } } void CDemoView::OnColorSeprgb() { LBitmap LBitmapColorPlanes[3]; m_LAniWnd.ColorSeparate(LBitmapColorPlanes, sizeof(BITMAPHANDLE),COLORSEP_RGB); pTheApp->CreateNewBitmapWindow(_T("Blue Plane"),&LBitmapColorPlanes[0]); pTheApp->CreateNewBitmapWindow(_T("Green Plane"),&LBitmapColorPlanes[1]); pTheApp->CreateNewBitmapWindow(_T("Red Plane"),&LBitmapColorPlanes[2]); } void CDemoView::OnColorSolarize() { SOLARIZEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( SOLARIZEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( SOLARIZEDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->SetSolarizeParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalSolarize(m_hWnd); } void CDemoView::OnColorUnique() { L_UINT32 ulColors; if(m_LAniWnd.GetColorCount(&ulColors)==SUCCESS) { TCHAR szText[40]; wsprintf(szText,_T("Bitmap contains %lu unique colors"), ulColors); MessageBox(szText,_T("color count")); } } void CDemoView::OnColorWinlevel() { WINDOWLEVELDLGPARAMS DlgParams; L_INT nLowBit = 0 ; L_INT nHighBit = 0 ; L_INT nSize = 0 ; L_INT nLow = 0 ; L_INT nHigh = 0 ; memset ( &DlgParams, 0, sizeof ( WINDOWLEVELDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( WINDOWLEVELDLGPARAMS ) ; // get min/max bits m_LAniWnd.GetMinMaxBits ( &nLowBit, &nHighBit ) ; // get min/max values m_LAniWnd.GetMinMaxVal ( &nLow, &nHigh ) ; m_LAniWnd.GetHandle()->MinVal = nLow ; m_LAniWnd.GetHandle()->MaxVal = nHigh ; nSize = ( L_UINT32 ) ( 1L<< ( nHighBit - nLowBit + 1 ) ) ; DlgParams.uStructSize = sizeof ( WINDOWLEVELDLGPARAMS ) ; DlgParams.pLUT = ( RGBQUAD L_HUGE* ) malloc ( ( nSize * sizeof ( RGBQUAD ) ) ) ; DlgParams.uLUTLength = ( L_UINT32 ) nSize ; DlgParams.uLowBit = nLowBit ; DlgParams.uHighBit = nHighBit ; DlgParams.nLow = nLow ; DlgParams.nHigh = nHigh ; switch ( m_LAniWnd.IsGrayScale( ) ) { case GRAY_ORDEREDNORMAL: { DlgParams.crStart = RGB ( 0, 0, 0 ) ; DlgParams.crEnd = RGB ( 255, 255, 255 ) ; break ; } case GRAY_ORDEREDINVERSE: { DlgParams.crStart = RGB ( 255, 255, 255 ) ; DlgParams.crEnd = RGB ( 0, 0, 0 ) ; break ; } case GRAY_NOTORDERED: { DlgParams.crStart = RGB ( 0, 0, 0 ) ; DlgParams.crEnd = RGB ( 255, 255, 255 ) ; break ; } default: { MessageBox ( TEXT ( "Window Level is not supported for this bitmap order" ), TEXT ( "Window Level Error" ), MB_OK ) ; return ; } } DlgParams.uWindowLevelFlags = FILLLUT_OUTSIDE | FILLLUT_LINEAR ; DlgParams.uDlgFlags = DLG_WINDOWLEVEL_SHOW_RANGE ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogColor()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogColor()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogColor()->SetWindowLevelParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalWindowLevel(m_hWnd); } void CDemoView::OnUpdateColorWinlevel(CCmdUI* pCmdUI) { L_BOOL bEnable = ((m_LAniWnd.IsGrayScale()!=GRAY_NO)&& ((m_LAniWnd.LBitmapBase::GetBitsPerPixel()==12)|| (m_LAniWnd.LBitmapBase::GetBitsPerPixel()==16))); bEnable=bEnable&&(!m_LAniWnd.IsPlaying()); pCmdUI->Enable(bEnable); } void CDemoView::OnUpdateColorBrightness(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorContrast(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorFill(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorGamma(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorHistocontrast(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorHistoequalize(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorHue(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorIntensitydetect(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorIntensitystretch(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorInvert(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorPicturize(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorSaturation(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorSepalpha(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorSepcmy(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorSepcmyk(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorSephls(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorSephsv(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorSeprgb(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorSolarize(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColorUnique(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // Copy // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnEditCopy() { m_LAniWnd.CopyToClipboard(m_hWnd,COPY2CB_EMPTY|COPY2CB_DIB|COPY2CB_DDB|COPY2CB_PALETTE); } void CDemoView::OnUpdateEditCopy(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnEditPasteFloater() { m_LAniWnd.CopyFromClipboard(m_hWnd); L_BOOL isHas = m_LAniWnd.HasFloater(); isHas = m_LAniWnd.HasRgn(); } void CDemoView::OnUpdateEditPasteFloater(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()&&m_LAniWnd.IsClipboardReady()); } void CDemoView::OnEditCopyFloater() { m_LAniWnd.CopyToClipboard(m_hWnd); } void CDemoView::OnUpdateEditCopyFloater(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // View Menu // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnViewZoom() { CRangeDlg dlg; dlg.m_strTitle = _T("Zoom"); dlg.m_strLabel = _T("&Amount"); dlg.m_nValue = m_LAniWnd.GetZoomPercent(); dlg.m_nMin = 1; dlg.m_nMax = 800; dlg.m_nPage = 100; if(dlg.DoModal() == IDOK) m_LAniWnd.SetZoomPercent((L_UINT)dlg.m_nValue); } void CDemoView::OnUpdateViewZoom(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnViewZoomin() { m_LAniWnd.ZoomIn(); } void CDemoView::OnUpdateViewZoomin(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnViewZoomout() { m_LAniWnd.ZoomOut(); } void CDemoView::OnUpdateViewZoomout(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnViewNormal() { m_LAniWnd.SetZoomMode(ZOOM_NORMAL); } void CDemoView::OnUpdateViewNormal(CCmdUI* pCmdUI) { pCmdUI->Enable(m_LAniWnd.GetZoomMode()!=ZOOM_NORMAL); } void CDemoView::OnFitFitwin() { m_LAniWnd.SetZoomMode(ZOOM_FIT); } void CDemoView::OnUpdateFitFitwin(CCmdUI* pCmdUI) { pCmdUI->Enable(m_LAniWnd.GetZoomMode()!=ZOOM_FIT); } void CDemoView::OnFitHeight() { m_LAniWnd.SetZoomMode(ZOOM_FITHEIGHT); } void CDemoView::OnUpdateFitHeight(CCmdUI* pCmdUI) { pCmdUI->Enable(m_LAniWnd.GetZoomMode()!=ZOOM_FITHEIGHT); } void CDemoView::OnFitStretch() { m_LAniWnd.SetZoomMode(ZOOM_STRETCH); } void CDemoView::OnUpdateFitStretch(CCmdUI* pCmdUI) { pCmdUI->Enable(m_LAniWnd.GetZoomMode()!=ZOOM_STRETCH); } void CDemoView::OnFitWidth() { m_LAniWnd.SetZoomMode(ZOOM_FITWIDTH); } void CDemoView::OnUpdateFitWidth(CCmdUI* pCmdUI) { pCmdUI->Enable(m_LAniWnd.GetZoomMode()!=ZOOM_FITWIDTH); } void CDemoView::OnViewZoomCenter() { m_LAniWnd.EnableCenterOnZoom(!m_LAniWnd.IsCenterOnZoomEnabled()); } void CDemoView::OnUpdateViewZoomCenter(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_LAniWnd.IsCenterOnZoomEnabled()); } void CDemoView::OnViewPaintusedpi() { m_LAniWnd.EnablePaintSizeUseDPI(!m_LAniWnd.IsPaintSizeUseDPIEnabled()); } void CDemoView::OnUpdateViewPaintusedpi(CCmdUI* pCmdUI) { L_BOOL bEnable = !m_LAniWnd.IsPlaying(); pCmdUI->Enable(bEnable); pCmdUI->SetCheck(m_LAniWnd.IsPaintSizeUseDPIEnabled()); } void CDemoView::OnUpdateViewEffects(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateViewPaintGradient(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateViewPaintTransition(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnViewPaintPattern() { // TODO: Add your command handler code here CPatternDlg PattDlg(this); PattDlg.m_uStyle = m_LAniWnd.GetPatternStyle(); PattDlg.m_crFore = m_LAniWnd.GetPatternForeColor(); PattDlg.m_crBack = m_LAniWnd.GetPatternBackColor(); if (PattDlg.DoModal()==IDOK) { m_LAniWnd.SetPatternStyle(PattDlg.m_uStyle); m_LAniWnd.SetPatternForeColor(PattDlg.m_crFore); m_LAniWnd.SetPatternBackColor(PattDlg.m_crBack); m_LAniWnd.Repaint(); } } void CDemoView::OnUpdateViewPaintPattern(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // Animation Menu // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnAniPlay() { m_LAniWnd.PlayAnimation(); } void CDemoView::OnUpdateAniPlay(CCmdUI* pCmdUI) { L_BOOL bEnable = m_LAniWnd.IsValidAnimation() && !m_LAniWnd.IsPlaying(); pCmdUI->Enable(bEnable); } void CDemoView::OnInitialUpdate() { CView::OnInitialUpdate(); } void CDemoView::OnAniFirst() { m_LAniWnd.MoveFirstFrame(); } void CDemoView::OnUpdateAniFirst(CCmdUI* pCmdUI) { L_BOOL bEnable = FALSE; if (m_LAniWnd.IsValidAnimation()) if (!m_LAniWnd.IsPlaying()) if (!m_LAniWnd.IsFirstFrame()) bEnable = TRUE; pCmdUI->Enable(bEnable); } void CDemoView::OnAniLast() { m_LAniWnd.MoveLastFrame(); } void CDemoView::OnUpdateAniLast(CCmdUI* pCmdUI) { L_BOOL bEnable = FALSE; if (m_LAniWnd.IsValidAnimation()) if (!m_LAniWnd.IsPlaying()) if (!m_LAniWnd.IsLastFrame()) bEnable = TRUE; pCmdUI->Enable(bEnable); } void CDemoView::OnAniLoop() { m_LAniWnd.EnableLoop(!m_LAniWnd.IsLoopEnabled()); } void CDemoView::OnUpdateAniLoop(CCmdUI* pCmdUI) { pCmdUI->Enable(m_LAniWnd.IsValidAnimation() && !m_LAniWnd.IsPlaying()); pCmdUI->SetCheck(m_LAniWnd.IsLoopEnabled()); } void CDemoView::OnAniNext() { m_LAniWnd.MoveNextFrame(); } void CDemoView::OnUpdateAniNext(CCmdUI* pCmdUI) { L_BOOL bEnable = !m_LAniWnd.IsPlaying(); pCmdUI->Enable(m_LAniWnd.IsNextFrameAvailable()&&bEnable); } void CDemoView::OnAniPrevious() { m_LAniWnd.MovePreviousFrame(); } void CDemoView::OnUpdateAniPrevious(CCmdUI* pCmdUI) { L_BOOL bEnable = !m_LAniWnd.IsPlaying(); pCmdUI->Enable(m_LAniWnd.IsPreviousFrameAvailable()&&bEnable); } void CDemoView::OnAniStop() { m_LAniWnd.StopAnimation(); } void CDemoView::OnUpdateAniStop(CCmdUI* pCmdUI) { pCmdUI->Enable(m_LAniWnd.IsPlaying()); } void CDemoView::OnAniCreate() { CCreateAnimation CAnimDlg; if (CAnimDlg.DoModal()==IDOK) pTheApp->CreateNewBitmapListWindow(_T("Animation"),&CAnimDlg.m_BitmapList); } void CDemoView::OnAniBackcolor() { CColorDlg BackColorDlg; BackColorDlg.m_pBitmap = &m_LAniWnd; BackColorDlg.m_BackColor = m_LAniWnd.GetBackgroundColor(); if (BackColorDlg.DoModal()==IDOK) { m_LAniWnd.SetBackgroundColor(BackColorDlg.m_BackColor); } } void CDemoView::OnUpdateAniBackcolor(CCmdUI* pCmdUI) { L_BOOL bEnable = !m_LAniWnd.IsPlaying(); pCmdUI->Enable(m_LAniWnd.GetCount()>1 &&bEnable); } void CDemoView::OnUpdateAniOptimize(CCmdUI* pCmdUI) { L_BOOL bEnable = !m_LAniWnd.IsPlaying(); pCmdUI->Enable(bEnable&&m_LAniWnd.GetCount()>1); } void CDemoView::OnAniOptimize() { m_LAniWnd.DoModalColorResItems(m_hWnd); } void CDemoView::OnAniSettings() { CFrameSettings CSettingsDlg; UINT uIndex = m_LAniWnd.GetCurrentIndex(); //set current frame... m_LAniWnd.MoveToFrame(uIndex); if (m_LAniWnd.IsPlaying()) { AfxMessageBox(_T("Stop animation first!"),MB_OK | MB_ICONSTOP); return; } CSettingsDlg.m_nDelay = m_LAniWnd.GetDelay(uIndex); CSettingsDlg.m_nDisposalMethod = m_LAniWnd.GetDisposalMethod(uIndex); m_LAniWnd.GetPosition(&CSettingsDlg.m_nLeft, &CSettingsDlg.m_nTop,uIndex); CSettingsDlg.m_fWaitInput = m_LAniWnd.IsWaitingForUserInput(uIndex); CSettingsDlg.m_fApplyAll = FALSE; m_LAniWnd.IsTransparencyEnabled((UINT*)&CSettingsDlg.m_fTransparent, &CSettingsDlg.m_crTransparent, uIndex); if (CSettingsDlg.DoModal()==IDOK) { if (CSettingsDlg.m_fApplyAll) uIndex = -1; m_LAniWnd.SetDelay(CSettingsDlg.m_nDelay, uIndex); m_LAniWnd.SetDisposalMethod(CSettingsDlg.m_nDisposalMethod, uIndex); m_LAniWnd.SetPosition(CSettingsDlg.m_nLeft, CSettingsDlg.m_nTop,uIndex); m_LAniWnd.WaitForUserInput(CSettingsDlg.m_fWaitInput, uIndex); m_LAniWnd.EnableTransparency(CSettingsDlg.m_fTransparent,CSettingsDlg.m_crTransparent, uIndex); } } void CDemoView::OnUpdateAniSettings(CCmdUI* pCmdUI) { L_BOOL bEnable = !m_LAniWnd.IsPlaying(); pCmdUI->Enable(m_LAniWnd.GetCount()>1 && bEnable); } void CDemoView::OnUpdateAniCreate(CCmdUI* pCmdUI) { L_BOOL bEnable = !m_LAniWnd.IsPlaying(); pCmdUI->Enable(bEnable); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // Pref Menu // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnPrefBitfavor() { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_nBitonalScaling = DISPLAYMODE_FAVORBLACK; m_LAniWnd.SetDisplayMode(DISPLAYMODE_FAVORBLACK|DISPLAYMODE_SCALETOGRAY, DISPLAYMODE_FAVORBLACK); } else { pTheApp->OnPrefBitfavor(); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } void CDemoView::OnUpdatePrefBitfavor(CCmdUI* pCmdUI) { if(m_LAniWnd.IsLocalSettingsEnabled()) pCmdUI->SetCheck(m_nBitonalScaling==DISPLAYMODE_FAVORBLACK); else pTheApp->OnUpdatePrefBitfavor(pCmdUI); } void CDemoView::OnPrefBitnormal() { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_LAniWnd.SetDisplayMode(DISPLAYMODE_FAVORBLACK|DISPLAYMODE_SCALETOGRAY,0); m_nBitonalScaling = 0; } else { pTheApp->OnPrefBitnormal(); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } void CDemoView::OnUpdatePrefBitnormal(CCmdUI* pCmdUI) { if(m_LAniWnd.IsLocalSettingsEnabled()) pCmdUI->SetCheck(m_nBitonalScaling==0); else pTheApp->OnUpdatePrefBitnormal(pCmdUI); } void CDemoView::OnPrefBitscalegray() { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_nBitonalScaling = DISPLAYMODE_SCALETOGRAY; m_LAniWnd.SetDisplayMode(DISPLAYMODE_SCALETOGRAY|DISPLAYMODE_FAVORBLACK, DISPLAYMODE_SCALETOGRAY); } else { pTheApp->OnPrefBitscalegray(); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } void CDemoView::OnUpdatePrefBitscalegray(CCmdUI* pCmdUI) { if(m_LAniWnd.IsLocalSettingsEnabled()) pCmdUI->SetCheck(m_nBitonalScaling==DISPLAYMODE_SCALETOGRAY); else pTheApp->OnUpdatePrefBitscalegray(pCmdUI); } void CDemoView::OnPrefPreview() { pTheApp->m_bDlgEnablePreview = !pTheApp->m_bDlgEnablePreview; } void CDemoView::OnUpdatePrefPreview(CCmdUI* pCmdUI) { pCmdUI->SetCheck(pTheApp->m_bDlgEnablePreview); } void CDemoView::OnPrefDispcontrast() { LDialogColor DialogColor; CONTRASTDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( CONTRASTDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( CONTRASTDLGPARAMS ) ; DlgParams.nChange = m_LAniWnd.GetPaintContrast(); DialogColor.EnableCallBack(FALSE); DialogColor.EnablePreview(FALSE); DialogColor.EnableAutoProcess(FALSE); DialogColor.EnableToolbar(FALSE); DialogColor.SetContrastParams(&DlgParams) ; if( DialogColor.DoModalContrast(m_hWnd) == SUCCESS_DLG_OK) { DialogColor.GetContrastParams(&DlgParams,sizeof(DlgParams)) ; m_LAniWnd.SetPaintContrast(DlgParams.nChange); } } void CDemoView::OnUpdatePrefDispcontrast(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnPrefDispgamma() { LDialogColor DialogColor; GAMMAADJUSTMENTDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( GAMMAADJUSTMENTDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( GAMMAADJUSTMENTDLGPARAMS ) ; DlgParams.nRedValue = 150; DlgParams.nGreenValue = 150; DlgParams.nBlueValue = 150; DlgParams.bAllChannels = TRUE ; DlgParams.uDlgFlags = DLG_GAMMAADJUSTMENT_FORCELINKCHANNELS; DialogColor.EnableCallBack(FALSE); DialogColor.EnableAutoProcess(FALSE); DialogColor.EnablePreview(FALSE); DialogColor.EnableToolbar(FALSE); DialogColor.SetGammaAdjustmentParams(&DlgParams) ; if( DialogColor.DoModalGammaAdjustment(m_hWnd) == SUCCESS_DLG_OK) { DialogColor.GetGammaAdjustmentParams(&DlgParams,sizeof(DlgParams)) ; m_LAniWnd.SetPaintGamma(DlgParams.nRedValue); } } void CDemoView::OnUpdatePrefDispgamma(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnPrefDispintensity() { LDialogColor DialogColor; BRIGHTNESSDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( BRIGHTNESSDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( BRIGHTNESSDLGPARAMS ) ; DlgParams.nChange = m_LAniWnd.GetPaintIntensity() ; DialogColor.EnableCallBack(FALSE); DialogColor.EnablePreview(FALSE); DialogColor.EnableAutoProcess(FALSE); DialogColor.EnableToolbar(FALSE); DialogColor.SetBrightnessParams(&DlgParams) ; if(DialogColor.DoModalBrightness(m_hWnd) == SUCCESS_DLG_OK) { DialogColor.GetBrightnessParams(&DlgParams,sizeof(DlgParams)); if(DlgParams.nChange >= -1000 && DlgParams.nChange <= 1000) { m_LAniWnd.SetPaintIntensity(DlgParams.nChange); } } } void CDemoView::OnUpdatePrefDispintensity(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnPrefDithrerrdiff() { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_nOrderedDither = 0; m_LAniWnd.SetDisplayMode(DISPLAYMODE_ORDEREDDITHER,0); } else { pTheApp->OnPrefDithrerrdiff(); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } void CDemoView::OnUpdatePrefDithrerrdiff(CCmdUI* pCmdUI) { if(m_LAniWnd.IsLocalSettingsEnabled()) pCmdUI->SetCheck(m_nOrderedDither==0); else pTheApp->OnUpdatePrefDithrerrdiff(pCmdUI); } void CDemoView::OnPrefDithrordered() { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_nOrderedDither = DISPLAYMODE_ORDEREDDITHER; m_LAniWnd.SetDisplayMode(DISPLAYMODE_ORDEREDDITHER,DISPLAYMODE_ORDEREDDITHER); } else { pTheApp->OnPrefDithrordered(); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } void CDemoView::OnUpdatePrefDithrordered(CCmdUI* pCmdUI) { if(m_LAniWnd.IsLocalSettingsEnabled()) pCmdUI->SetCheck(m_nOrderedDither); else pTheApp->OnUpdatePrefDithrordered(pCmdUI); } void CDemoView::OnPrefPalauto() { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_nAutoPalette = 0; m_LAniWnd.SetDisplayMode(DISPLAYMODE_FIXEDPALETTE| DISPLAYMODE_NETSCAPEPALETTE,0); } else { pTheApp->OnPrefPalauto(); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } void CDemoView::OnUpdatePrefPalauto(CCmdUI* pCmdUI) { if(m_LAniWnd.IsLocalSettingsEnabled()) pCmdUI->SetCheck(m_nAutoPalette==0); else pTheApp->OnUpdatePrefPalauto(pCmdUI); } void CDemoView::OnPrefPalfixed() { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_nAutoPalette = DISPLAYMODE_FIXEDPALETTE; m_LAniWnd.SetDisplayMode(DISPLAYMODE_FIXEDPALETTE|DISPLAYMODE_NETSCAPEPALETTE, DISPLAYMODE_FIXEDPALETTE); } else { pTheApp->OnPrefPalfixed(); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } void CDemoView::OnUpdatePrefPalfixed(CCmdUI* pCmdUI) { if(m_LAniWnd.IsLocalSettingsEnabled()) pCmdUI->SetCheck(m_nAutoPalette==DISPLAYMODE_FIXEDPALETTE); else pTheApp->OnUpdatePrefPalfixed(pCmdUI); } void CDemoView::OnPrefPalnetscape() { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_nAutoPalette = DISPLAYMODE_NETSCAPEPALETTE; m_LAniWnd.SetDisplayMode(DISPLAYMODE_FIXEDPALETTE|DISPLAYMODE_NETSCAPEPALETTE, DISPLAYMODE_FIXEDPALETTE|DISPLAYMODE_NETSCAPEPALETTE); } else { pTheApp->OnPrefPalnetscape(); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } void CDemoView::OnUpdatePrefPalnetscape(CCmdUI* pCmdUI) { if(m_LAniWnd.IsLocalSettingsEnabled()) pCmdUI->SetCheck(m_nAutoPalette==DISPLAYMODE_NETSCAPEPALETTE); else pTheApp->OnUpdatePrefPalnetscape(pCmdUI); } void CDemoView::OnPrefLocalsettings() { m_LAniWnd.EnableLocalSettings(!m_LAniWnd.IsLocalSettingsEnabled()); } void CDemoView::OnUpdatePrefLocalsettings(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_LAniWnd.IsLocalSettingsEnabled()); } void CDemoView::OnPrefEnablescroll() { m_LAniWnd.EnableAutoScroll(!m_LAniWnd.IsAutoScrollEnabled()); } void CDemoView::OnUpdatePrefEnablescroll(CCmdUI* pCmdUI) { L_BOOL bEnable = !m_LAniWnd.IsPlaying(); pCmdUI->Enable(bEnable); pCmdUI->SetCheck(m_LAniWnd.IsAutoScrollEnabled()); } void CDemoView::OnPrefEnablekeyboard() { m_LAniWnd.EnableKeyBoard(!m_LAniWnd.IsKeyBoardEnabled()); } void CDemoView::OnUpdatePrefEnablekeyboard(CCmdUI* pCmdUI) { L_BOOL bEnable = !m_LAniWnd.IsPlaying(); pCmdUI->Enable(bEnable); pCmdUI->SetCheck(m_LAniWnd.IsKeyBoardEnabled()); } void CDemoView::OnPrefPaintwhileloadForCur() { m_LAniWnd.EnablePaintWhileLoad(!m_LAniWnd.IsPaintWhileLoadEnabled()); } void CDemoView::OnUpdatePrefPaintwhileloadForCur(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_LAniWnd.IsPaintWhileLoadEnabled()); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // Pan Window // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnViewPanwindow() { if(!m_LAniWnd.IsPanWndCreated()) { m_LAniWnd.CreatePanWnd(DISPLAYMODE_SCALETOGRAY,0,0,150,150,_T("PAN_WIN"),NULL,NULL,TRUE); m_LAniWnd.UpdatePanWnd(DISPLAYMODE_SCALETOGRAY,RGB(255,0,0),_T(" Test Pan Window ")); } else m_LAniWnd.DestroyPanWnd(); } void CDemoView::OnUpdateViewPanwindow(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_LAniWnd.IsPanWndCreated()); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // File Save // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnFileSave() { m_LAniWnd.Save(); } void CDemoView::OnFileSaveAs() { SAVEDLGPARAMS SaveParms ; OPENFILENAME OpenFileName ; memset ( &SaveParms, 0, sizeof ( SAVEDLGPARAMS ) ) ; OpenFileName.lStructSize = sizeof ( OPENFILENAME ) ; OpenFileName.lpstrInitialDir = NULL; OpenFileName.lpstrTitle = _T("Save a File"); OpenFileName.nFilterIndex = 0 ; SaveParms.uStructSize = sizeof ( SAVEDLGPARAMS) ; SaveParms.nQFactor = 2 ; SaveParms.nPageNumber = 1 ; SaveParms.nStampBits = 24; SaveParms.nStampWidth = 120; SaveParms.nStampHeight = 120; SaveParms.nBitsPerPixel = m_LAniWnd.GetBitsPerPixel(); SaveParms.nFormat = FILE_BMP; SaveParms.uSaveMulti = MULTIPAGE_OPERATION_REPLACE ; SaveParms.uDlgFlags = DLG_SAVE_SHOW_FILEOPTIONS_PROGRESSIVE | DLG_SAVE_SHOW_FILEOPTIONS_MULTIPAGE | DLG_SAVE_SHOW_FILEOPTIONS_STAMP | DLG_SAVE_SHOW_FILEOPTIONS_QFACTOR | DLG_SAVE_SHOW_FILEOPTIONS_J2KOPTIONS | DLG_SAVE_SHOW_FILEOPTIONS_BASICJ2KOPTIONS | DLG_SAVE_SHOW_FILEOPTIONS_JBIG2OPTIONS ; m_LAniWnd.DialogFile()->SetSaveParams(&SaveParms); m_LAniWnd.DialogFile()->EnableAutoProcess(); if(m_LAniWnd.DialogFile()->DoModalSave(m_hWnd)==SUCCESS_DLG_OK) { SAVEDLGPARAMS sp; m_LAniWnd.DialogFile()->GetSaveParams(&sp, sizeof(sp)); DisplayDICOMSaveMsg(sp.nFormat); L_TCHAR zsFileName[255]; L_TCHAR zsName[50]; L_TCHAR zsExt[5]; memset(zsFileName,0,sizeof(zsFileName)); memset(zsName,0,sizeof(zsName)); memset(zsExt,0,sizeof(zsExt)); L_UINT uSize = sizeof(zsFileName); m_LAniWnd.GetFileName(zsFileName,&uSize); _tsplitpath(zsFileName,NULL,NULL,zsName,zsExt); lstrcat(zsName,zsExt); GetDocument()->SetTitle(zsName); m_LAniWnd.Load(); } } #define DICOM_SAVE_MSG _T("This demo can only be used to create a 'Secondary Capture Image Storage' DICOM Dataset.\n") \ _T("All elements in the Dataset will be set to appropriate default values.\n") \ _T("For full DICOM support, refer to the LEADTOOLS Medical Imaging demos.") L_VOID CDemoView::DisplayDICOMSaveMsg(L_INT nFormat) { CDemo* pTheApp = (CDemo*) AfxGetApp(); if(pTheApp->m_bDICOMSaveMsg) { switch(nFormat) { case FILE_DICOM_GRAY: case FILE_DICOM_COLOR: case FILE_DICOM_RLE_GRAY: case FILE_DICOM_RLE_COLOR: case FILE_DICOM_JPEG_GRAY: case FILE_DICOM_JPEG_COLOR: pTheApp->m_bDICOMSaveMsg = FALSE; //only do this one time MessageBox(DICOM_SAVE_MSG, _T("DICOM Save Information"), MB_OK); break; } } return; } /////////////////////////////////////////////////////////////////////////////// // // // // // // // Tool Type // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnToolNone() { m_LAniWnd.SetToolType(TOOL_USERMODE); m_LAniWnd.SetRgnFrameType(RGNFRAME_ANIMATED); } void CDemoView::OnUpdateToolNone(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_LAniWnd.GetToolType()==TOOL_USERMODE); } void CDemoView::OnToolPanimage() { m_LAniWnd.SetToolType(TOOL_PANIMAGE); m_LAniWnd.SetRgnFrameType(RGNFRAME_ANIMATED); } void CDemoView::OnUpdateToolPanimage(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_LAniWnd.GetToolType()==TOOL_PANIMAGE); } void CDemoView::OnToolZoomrect() { m_LAniWnd.SetToolType(TOOL_ZOOMRECT); m_LAniWnd.SetRgnFrameType(RGNFRAME_ANIMATED); } void CDemoView::OnUpdateToolZoomrect(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); pCmdUI->SetCheck(m_LAniWnd.GetToolType()==TOOL_ZOOMRECT); } void CDemoView::OnToolZoomInMouse() { m_LAniWnd.SetToolType(TOOL_ZOOM_ON_MOUSECLICK); m_LAniWnd.SetRgnFrameType(RGNFRAME_ANIMATED); } void CDemoView::OnUpdateToolZoomInMouse(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); pCmdUI->SetCheck(m_LAniWnd.GetToolType()==TOOL_ZOOM_ON_MOUSECLICK); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // Region // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnRgnCurve() { m_LAniWnd.SetToolType(TOOL_REGION); m_LAniWnd.SetRegionType(REGION_TYPE_CURVE); m_LAniWnd.SetRgnFrameType(RGNFRAME_ANIMATED); } void CDemoView::OnUpdateRgnCurve(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); pCmdUI->SetCheck((m_LAniWnd.GetToolType()==TOOL_REGION)&& (m_LAniWnd.GetRegionType()==REGION_TYPE_CURVE)); } void CDemoView::OnRgnBezier() { m_LAniWnd.SetToolType(TOOL_REGION); m_LAniWnd.SetRegionType(REGION_TYPE_BEZIER); m_LAniWnd.SetRgnFrameType(RGNFRAME_ANIMATED); } void CDemoView::OnUpdateRgnBezier(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); pCmdUI->SetCheck((m_LAniWnd.GetToolType()==TOOL_REGION)&& (m_LAniWnd.GetRegionType()==REGION_TYPE_BEZIER)); } void CDemoView::OnRgnEllipse() { m_LAniWnd.SetToolType(TOOL_REGION); m_LAniWnd.SetRegionType(REGION_TYPE_ELIPSE); m_LAniWnd.SetRgnFrameType(RGNFRAME_ANIMATED); } void CDemoView::OnUpdateRgnEllipse(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); pCmdUI->SetCheck((m_LAniWnd.GetToolType()==TOOL_REGION)&& (m_LAniWnd.GetRegionType()==REGION_TYPE_ELIPSE)); } void CDemoView::OnRgnFreehand() { m_LAniWnd.SetToolType(TOOL_REGION); m_LAniWnd.SetRegionType(REGION_TYPE_FREE_HAND); m_LAniWnd.SetRgnFrameType(RGNFRAME_ANIMATED); } void CDemoView::OnUpdateRgnFreehand(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); pCmdUI->SetCheck(((m_LAniWnd.GetToolType()==TOOL_REGION)&& (m_LAniWnd.GetRegionType()==REGION_TYPE_FREE_HAND))); } void CDemoView::OnRgnPolygon() { m_LAniWnd.SetToolType(TOOL_REGION); m_LAniWnd.SetRegionType(REGION_TYPE_POLYGON); m_LAniWnd.SetRgnFrameType(RGNFRAME_ANIMATED); } void CDemoView::OnUpdateRgnPolygon(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); pCmdUI->SetCheck(((m_LAniWnd.GetToolType()==TOOL_REGION)&& (m_LAniWnd.GetRegionType()==REGION_TYPE_POLYGON))); } void CDemoView::OnRgnRectangle() { m_LAniWnd.SetToolType(TOOL_REGION); m_LAniWnd.SetRegionType(REGION_TYPE_RECT); m_LAniWnd.SetRgnFrameType(RGNFRAME_ANIMATED); } void CDemoView::OnUpdateRgnRectangle(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); pCmdUI->SetCheck(((m_LAniWnd.GetToolType()==TOOL_REGION)&& (m_LAniWnd.GetRegionType()==REGION_TYPE_RECT))); } void CDemoView::OnRgnRndrect() { m_LAniWnd.SetToolType(TOOL_REGION); m_LAniWnd.SetRegionType(REGION_TYPE_ROUNDRECT); m_LAniWnd.SetRgnFrameType(RGNFRAME_ANIMATED); } void CDemoView::OnUpdateRgnRndrect(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); pCmdUI->SetCheck(((m_LAniWnd.GetToolType()==TOOL_REGION)&& (m_LAniWnd.GetRegionType()==REGION_TYPE_ROUNDRECT))); } void CDemoView::OnRgnTriangle() { m_LAniWnd.SetToolType(TOOL_REGION); m_LAniWnd.SetRegionType(REGION_TYPE_TRIANGLE); m_LAniWnd.SetRgnFrameType(RGNFRAME_ANIMATED); } void CDemoView::OnUpdateRgnTriangle(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); pCmdUI->SetCheck(((m_LAniWnd.GetToolType()==TOOL_REGION)&& (m_LAniWnd.GetRegionType()==REGION_TYPE_TRIANGLE))); } void CDemoView::OnRgnCancel() { m_LAniWnd.CancelRgn(); m_LAniWnd.SetToolType(TOOL_USERMODE); } void CDemoView::OnUpdateRgnCancel(CCmdUI* pCmdUI) { L_BOOL bEnable = !m_LAniWnd.IsPlaying(); pCmdUI->Enable(bEnable && m_LAniWnd.HasFloater()); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // Region Frame // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnRgnAnimframe() { m_LAniWnd.SetRgnFrameType(RGNFRAME_ANIMATED); } void CDemoView::OnUpdateRgnAnimframe(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); pCmdUI->SetCheck(m_LAniWnd.GetRgnFrameType()==RGNFRAME_ANIMATED); } void CDemoView::OnRgnStaticframe() { m_LAniWnd.SetRgnFrameType(RGNFRAME_STATIC); } void CDemoView::OnUpdateRgnStaticframe(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); pCmdUI->SetCheck(m_LAniWnd.GetRgnFrameType()==RGNFRAME_STATIC); } void CDemoView::OnRgnNoneframe() { m_LAniWnd.SetRgnFrameType(RGNFRAME_NONE); } void CDemoView::OnUpdateRgnNoneframe(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); pCmdUI->SetCheck(m_LAniWnd.GetRgnFrameType()==RGNFRAME_NONE); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // View Menu // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnViewEnablePaintEffects() { m_LAniWnd.EnablePaintEffect(!m_LAniWnd.IsPaintEffectEnabled()); m_LAniWnd.Repaint(); } void CDemoView::OnUpdateViewEnablePaintEffects(CCmdUI* pCmdUI) { L_BOOL bEnable = !m_LAniWnd.IsPlaying(); pCmdUI->Enable(bEnable); pCmdUI->SetCheck(m_LAniWnd.IsPaintEffectEnabled()); } void CDemoView::OnViewEnableGradint() { m_LAniWnd.EnableDrawGradient(!m_LAniWnd.IsDrawGradientEnabled()); m_LAniWnd.Repaint(); } void CDemoView::OnUpdateViewEnableGradint(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_LAniWnd.IsDrawGradientEnabled()); } void CDemoView::OnViewEnableTransition() { m_LAniWnd.EnablePaintTransition(!m_LAniWnd.IsPaintTransitionEnabled()); m_LAniWnd.Repaint(); } void CDemoView::OnUpdateViewEnableTransition(CCmdUI* pCmdUI) { L_BOOL bEnable = !m_LAniWnd.IsPlaying(); pCmdUI->Enable(bEnable); pCmdUI->SetCheck(m_LAniWnd.IsPaintTransitionEnabled()); } void CDemoView::OnViewEnablePattern() { m_LAniWnd.EnableDrawPattern(!m_LAniWnd.IsDrawPatternEnabled()); m_LAniWnd.Repaint(); } void CDemoView::OnUpdateViewEnablePattern(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsDrawGradientEnabled()); pCmdUI->SetCheck(m_LAniWnd.IsDrawPatternEnabled()); } void CDemoView::OnViewEffects() { EFFECTDLGPARAMS EfxDlgParm; memset(&EfxDlgParm, 0 , sizeof(EfxDlgParm)); EfxDlgParm.uStructSize = sizeof(EFFECTDLGPARAMS); EfxDlgParm.uEffect = EFX_EFFECT_ROLL4_T_R_T_L ; EfxDlgParm.uGrain = 5 ; EfxDlgParm.uDelay = 10 ; EfxDlgParm.uMaxPass = 1 ; EfxDlgParm.bTransparent = FALSE ; EfxDlgParm.crTransparent = RGB(0,0,0) ; EfxDlgParm.uWandWidth = 3 ; EfxDlgParm.crWand = RGB(255,0,0) ; EfxDlgParm.uDlgFlags = DLG_EFFECT_DELAY | DLG_EFFECT_GRAIN | DLG_EFFECT_PASSES | DLG_EFFECT_TRANSPARENT | DLG_EFFECT_WAND | DLG_EFFECT_CLASS_WIPE | DLG_EFFECT_CLASS_WIPERECT | DLG_EFFECT_CLASS_WIPECIRCLE | DLG_EFFECT_CLASS_PUSH | DLG_EFFECT_CLASS_SLIDE | DLG_EFFECT_CLASS_ROLL | DLG_EFFECT_CLASS_ROTATE | DLG_EFFECT_CLASS_ZOOM | DLG_EFFECT_CLASS_DRIP | DLG_EFFECT_CLASS_BLIND | DLG_EFFECT_CLASS_RANDOM | DLG_EFFECT_CLASS_CHECK | DLG_EFFECT_CLASS_BLOCKS | DLG_EFFECT_CLASS_CIRCLE | DLG_EFFECT_CLASS_ELLIPSE ; m_LAniWnd.DialogEffect()->SetEffectParams(&EfxDlgParm); m_LAniWnd.DialogEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview); L_BOOL bPaintEffect = m_LAniWnd.EnablePaintEffect(FALSE); L_BOOL bPaintTransition = m_LAniWnd.EnablePaintTransition(FALSE); L_INT nRetCode = m_LAniWnd.DialogEffect()->DoModalGetEffect(m_hWnd); m_LAniWnd.EnablePaintEffect(bPaintEffect); m_LAniWnd.EnablePaintTransition(bPaintTransition); if(nRetCode==SUCCESS_DLG_OK) { m_LAniWnd.DialogEffect()->GetEffectParams(&EfxDlgParm, sizeof(EfxDlgParm)); m_LAniWnd.SetEffectParameters(&EfxDlgParm); if(bPaintEffect||bPaintTransition) m_LAniWnd.Repaint(); } } void CDemoView::OnViewPaintTransition() { TRANSITIONDLGPARAMS TransDlgParm; memset(&TransDlgParm,0, sizeof(TRANSITIONDLGPARAMS)); TransDlgParm.uStructSize = sizeof(TRANSITIONDLGPARAMS); TransDlgParm.uTransition = 0; TransDlgParm.crBack = RGB(0,0,0); TransDlgParm.crFore = RGB(255,255,255); TransDlgParm.uSteps = 256; TransDlgParm.uGrain = 3; TransDlgParm.uDlgFlags = DLG_TRANSITION_FORECOLOR| DLG_TRANSITION_BACKCOLOR | DLG_TRANSITION_DELAY | DLG_TRANSITION_GRAIN | DLG_TRANSITION_EFFECT | DLG_TRANSITION_PASSES | DLG_TRANSITION_WAND | DLG_TRANSITION_TRANSPARENT | DLG_TRANSITION_GRADIENT; m_LAniWnd.DialogEffect()->SetTransitionParams(&TransDlgParm); m_LAniWnd.DialogEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview); L_BOOL bPaintEffect = m_LAniWnd.EnablePaintEffect(FALSE); L_BOOL bPaintTransition = m_LAniWnd.EnablePaintTransition(FALSE); L_INT nRetCode = m_LAniWnd.DialogEffect()->DoModalGetTransition(m_hWnd); m_LAniWnd.EnablePaintEffect(bPaintEffect); m_LAniWnd.EnablePaintTransition(bPaintTransition); if(nRetCode==SUCCESS_DLG_OK) { m_LAniWnd.DialogEffect()->GetTransitionParams(&TransDlgParm, sizeof(TransDlgParm)); m_LAniWnd.SetTransitionParameters(&TransDlgParm); if(bPaintEffect||bPaintTransition) m_LAniWnd.Repaint(); } } void CDemoView::OnViewPaintGradient() { GRADIENTDLGPARAMS GradDlgParm; memset(&GradDlgParm,0, sizeof(GRADIENTDLGPARAMS)); GradDlgParm.uStructSize = sizeof(GRADIENTDLGPARAMS); GradDlgParm.crStart = RGB ( 0,0,255 ) ; GradDlgParm.crEnd = RGB ( 255,0,0 ) ; GradDlgParm.uStyle = EFX_GRADIENT_ANGLE_TO_RT ; GradDlgParm.uSteps = 200 ; GradDlgParm.uDlgFlags = DLG_GRADIENT_AUTOPREVIEW | DLG_GRADIENT_STARTCOLOR | DLG_GRADIENT_ENDCOLOR | DLG_GRADIENT_STEPS | DLG_GRADIENT_NO_TREEVIEW | DLG_GRADIENT_CLASS_LINEAR | DLG_GRADIENT_CLASS_ANGULAR | DLG_GRADIENT_CLASS_RECTANGULAR | DLG_GRADIENT_CLASS_ELLIPTICAL | DLG_GRADIENT_CLASS_CONICAL ; m_LAniWnd.DialogEffect()->SetGradientParams(&GradDlgParm); m_LAniWnd.DialogEffect()->EnablePreview(pTheApp->m_bDlgEnablePreview); if(m_LAniWnd.DialogEffect()->DoModalGetGradient(m_hWnd)==SUCCESS_DLG_OK) { m_LAniWnd.DialogEffect()->GetGradientParams(&GradDlgParm, sizeof(GradDlgParm)); m_LAniWnd.SetGradientParameters(&GradDlgParm); m_LAniWnd.Repaint(); } } /////////////////////////////////////////////////////////////////////////////// // // // // // // // Print // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnFilePrint() { HDC hPrintDC = m_LAniWnd.Print()->GetPrinterDC(); HCURSOR hCursor = SetCursor (LoadCursor (NULL, IDC_WAIT)); L_INT nWidth = MulDiv(m_LAniWnd.GetWidth(),GetDeviceCaps(hPrintDC,LOGPIXELSX),m_LAniWnd.GetXResolution()); L_INT nHeight = MulDiv(m_LAniWnd.GetHeight(),GetDeviceCaps(hPrintDC,LOGPIXELSY),m_LAniWnd.GetYResolution()); m_LAniWnd.Print()->Print(hPrintDC,1,1,nWidth,nHeight,TRUE); SetCursor (hCursor); } void CDemoView::OnUpdateFilePrint(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateFilePrintSetup(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // About & Window // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnUpdateAppAbout(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateWindowArrange(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateWindowCascade(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateWindowTileHorz(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // Caputre // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnUpdateCaptureActiveclient(CCmdUI* pCmdUI) { pTheApp->OnUpdateCaptureActiveclient(pCmdUI); if(m_LAniWnd.IsPlaying()) pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateCaptureActivewin(CCmdUI* pCmdUI) { pTheApp->OnUpdateCaptureActivewin(pCmdUI); if(m_LAniWnd.IsPlaying()) pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateCaptureArea(CCmdUI* pCmdUI) { pTheApp->OnUpdateCaptureArea(pCmdUI); if(m_LAniWnd.IsPlaying()) pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateCaptureAreaop(CCmdUI* pCmdUI) { pTheApp->OnUpdateCaptureAreaop(pCmdUI); if(m_LAniWnd.IsPlaying()) pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateCaptureCaptop(CCmdUI* pCmdUI) { pTheApp->OnUpdateCaptureCaptop(pCmdUI); if(m_LAniWnd.IsPlaying()) pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateCaptureExetabbed(CCmdUI* pCmdUI) { pTheApp->OnUpdateCaptureExetabbed(pCmdUI); if(m_LAniWnd.IsPlaying()) pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateCaptureExetree(CCmdUI* pCmdUI) { pTheApp->OnUpdateCaptureExetree(pCmdUI); if(m_LAniWnd.IsPlaying()) pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateCaptureMenu(CCmdUI* pCmdUI) { pTheApp->OnUpdateCaptureMenu(pCmdUI); if(m_LAniWnd.IsPlaying()) pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateCaptureMousecursor(CCmdUI* pCmdUI) { pTheApp->OnUpdateCaptureMousecursor(pCmdUI); if(m_LAniWnd.IsPlaying()) pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateCaptureObject(CCmdUI* pCmdUI) { pTheApp->OnUpdateCaptureObject(pCmdUI); if(m_LAniWnd.IsPlaying()) pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateCaptureObjectop(CCmdUI* pCmdUI) { pTheApp->OnUpdateCaptureObjectop(pCmdUI); if(m_LAniWnd.IsPlaying()) pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateCaptureScreen(CCmdUI* pCmdUI) { pTheApp->OnUpdateCaptureScreen(pCmdUI); if(m_LAniWnd.IsPlaying()) pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateCaptureStop(CCmdUI* pCmdUI) { pTheApp->OnUpdateCaptureStop(pCmdUI); if(m_LAniWnd.IsPlaying()) pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateCaptureWallpaper(CCmdUI* pCmdUI) { pTheApp->OnUpdateCaptureWallpaper(pCmdUI); if(m_LAniWnd.IsPlaying()) pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateCaptureWinundercursor(CCmdUI* pCmdUI) { pTheApp->OnUpdateCaptureWinundercursor(pCmdUI); if(m_LAniWnd.IsPlaying()) pCmdUI->Enable(FALSE); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // Drop File // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnDropFiles(HDROP hDropInfo) { L_TCHAR zsFileName[255]; L_TCHAR zsName[50]; L_TCHAR zsExt[5]; memset(zsFileName,0,sizeof(zsFileName)); memset(zsName,0,sizeof(zsName)); memset(zsExt,0,sizeof(zsExt)); L_UINT uSize = sizeof(zsFileName); m_LAniWnd.GetFileName(zsFileName,&uSize); _tsplitpath(zsFileName,NULL,NULL,zsName,zsExt); lstrcat(zsName,zsExt); GetDocument()->SetTitle(zsName); CView::OnDropFiles(hDropInfo); } void CDemoView::OnPrefEnabledragfile() { m_LAniWnd.EnableDragAcceptFiles(!m_LAniWnd.IsDragAcceptFilesEnabled()); } void CDemoView::OnUpdatePrefEnabledragfile(CCmdUI* pCmdUI) { pCmdUI->SetCheck(m_LAniWnd.IsDragAcceptFilesEnabled()); } void CDemoView::OnUpdateFileSaveAs(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } /////////////////////////////////////////////////////////////////////////////// // // // // // // // Status Bar // // // // // // // /////////////////////////////////////////////////////////////////////////////// void CDemoView::OnUpdateIndicatorFileName(CCmdUI* pCmdUI) { L_TCHAR szBuffer[256] ; L_UINT uBuffSize = sizeof(szBuffer); memset(szBuffer,0,sizeof(szBuffer)); m_LAniWnd.GetFileName( szBuffer, &uBuffSize); pCmdUI->SetText(szBuffer) ; } void CDemoView::OnUpdateIndicatorSize(CCmdUI* pCmdUI) { L_INT nHeight = m_LAniWnd.GetHeight(); L_INT nWidth = m_LAniWnd.GetWidth(); L_INT nViewPerspictive = m_LAniWnd.GetViewPerspective(); L_TCHAR szBuffer[50] ; memset(szBuffer,0,sizeof(szBuffer)) ; wsprintf(szBuffer,_T("%d X %d, %s\n"), nWidth, nHeight, (LPTSTR)(nViewPerspictive == TOP_LEFT ? _T("TOP_LEFT") : nViewPerspictive == TOP_RIGHT ? _T("TOP_RIGHT") : nViewPerspictive == BOTTOM_RIGHT ? _T("BOTTOM_RIGHT") : nViewPerspictive == TOP_LEFT90 ? _T("TOP_LEFT90") : nViewPerspictive == TOP_LEFT270? _T("TOP_LEFT270") : _T("BOTTOM_LEFT"))); pCmdUI->SetText(szBuffer) ; } void CDemoView::OnUpdateIndicatorBPP(CCmdUI* pCmdUI) { L_TCHAR szBuffer[50] ; L_INT nBitsPerPixel = m_LAniWnd.GetBitsPerPixel(); memset(szBuffer,0,sizeof(szBuffer)) ; wsprintf(szBuffer,_T("%d BPP\n"),nBitsPerPixel) ; pCmdUI->SetText(szBuffer) ; } void CDemoView::OnUpdateIndicatorZoomPercent(CCmdUI* pCmdUI) { L_TCHAR szBuffer[50] ; L_UINT uZoomPercent; L_UINT uZoomMode = m_LAniWnd.GetZoomMode(); memset(szBuffer,0,sizeof(szBuffer)) ; switch (uZoomMode) { case ZOOM_FIT: wsprintf(szBuffer,_T("Fit To Window")); break ; case ZOOM_STRETCH: wsprintf(szBuffer,_T("Stretch To Window")); break ; case ZOOM_FITWIDTH: wsprintf(szBuffer,_T("Fit To Width")); break ; case ZOOM_FITHEIGHT: wsprintf(szBuffer,_T("Fit To Height")); break ; default: uZoomPercent = m_LAniWnd.GetZoomPercent(); wsprintf(szBuffer,_T("%u%%"),uZoomPercent); break; } pCmdUI->SetText(szBuffer) ; } void CDemoView::OnUpdateIndicatorMemSize(CCmdUI* pCmdUI) { CString strBuf ; CString str ; L_UINT32 ulSize = m_LAniWnd.GetMemSize(); if (m_LAniWnd.Is1BitCompressed ()) { strBuf = _T("COMP") ; } else { if (m_LAniWnd.IsSuperCompressed ()) { strBuf = _T("SUP.CMP") ; } else { if (m_LAniWnd.IsTiled ( ) ) { strBuf = _T("TILED") ; } else { if (m_LAniWnd.IsUsingDiskMemory ()) { strBuf = _T("DISK") ; } else { strBuf = _T("MEMORY") ; } } } } // bitmap size < 10MB ? if(ulSize < 10000000) str.Format ( _T("%lu bytes, %s"), ulSize, strBuf); else // > 100MB str.Format ( _T("%lu KB, %s"), (ulSize >> 10), strBuf); pCmdUI->SetText(str) ; } LRESULT CDemoView::OnLoadFile(WPARAM wParam,LPARAM lParam) { CDemoDoc* pDoc = GetDocument(); if(pDoc==NULL) { DestroyWindow(); return 0; } pDoc->OnLoadFile(TRUE); return 0; } void CDemoView::OnImageSmooth() { BITMAPHANDLE BitmapRegion ; SMOOTHDLGPARAMS DlgParams; memset ( &BitmapRegion, 0, sizeof ( BITMAPHANDLE ) ) ; memset ( &DlgParams, 0, sizeof ( SMOOTHDLGPARAMS ) ) ; memset ( &DlgParams.Smooth , 0, sizeof ( SMOOTH ) ) ; DlgParams.uStructSize = sizeof ( SMOOTHDLGPARAMS ) ; DlgParams.Smooth.uStructSize = sizeof ( SMOOTH ) ; DlgParams.Smooth.pBitmapRegion = &BitmapRegion ; DlgParams.Smooth.uBitmapStructSize = sizeof ( BITMAPHANDLE ) ; DlgParams.Smooth.uFlags = SMOOTH_LEAD_REGION | SMOOTH_SINGLE_REGION ; DlgParams.Smooth.iLength = 10 ; m_LAniWnd.DialogDocument()->EnableCallBack(FALSE); m_LAniWnd.DialogDocument()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogDocument()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogDocument()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogDocument()->SetSmoothParams(&DlgParams) ; m_LAniWnd.DialogDocument()->DoModalSmooth(m_hWnd); } void CDemoView::OnImageLine() { BITMAPHANDLE BitmapRegion ; LINEREMOVEDLGPARAMS DlgParams; memset ( &BitmapRegion, 0, sizeof ( BITMAPHANDLE ) ) ; memset ( &DlgParams, 0, sizeof ( LINEREMOVEDLGPARAMS ) ) ; memset ( &DlgParams.LineRemove , 0, sizeof ( LINEREMOVE ) ) ; DlgParams.uStructSize = sizeof ( LINEREMOVEDLGPARAMS ) ; DlgParams.LineRemove.uStructSize = sizeof ( LINEREMOVE ) ; DlgParams.LineRemove.iGapLength = 0 ; DlgParams.LineRemove.iMaxLineWidth = 80 ; DlgParams.LineRemove.iMaxWallPercent = 60 ; DlgParams.LineRemove.iMinLineLength = 25 ; DlgParams.LineRemove.iVariance = 0 ; DlgParams.LineRemove.iWall = 90 ; DlgParams.LineRemove.pBitmapRegion = &BitmapRegion ; DlgParams.LineRemove.uBitmapStructSize = sizeof ( BITMAPHANDLE ) ; DlgParams.LineRemove.uFlags = LINE_SINGLE_REGION | LINE_LEAD_REGION ; DlgParams.LineRemove.uRemoveFlags = LINEREMOVE_HORIZONTAL ; m_LAniWnd.DialogDocument()->EnableCallBack(FALSE); m_LAniWnd.DialogDocument()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogDocument()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogDocument()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogDocument()->SetLineRemoveParams(&DlgParams) ; m_LAniWnd.DialogDocument()->DoModalLineRemove(m_hWnd); } void CDemoView::OnImageHolepunch() { BITMAPHANDLE BitmapRegion ; HOLEPUNCHREMOVEDLGPARAMS DlgParams; memset ( &BitmapRegion, 0, sizeof ( BITMAPHANDLE ) ) ; memset ( &DlgParams, 0, sizeof ( HOLEPUNCHREMOVEDLGPARAMS ) ) ; memset ( &DlgParams.HolePunchRemove, 0, sizeof ( HOLEPUNCH) ) ; memset ( &DlgParams.HolePunchRemove , 0, sizeof ( HOLEPUNCH ) ) ; DlgParams.uStructSize = sizeof ( HOLEPUNCHREMOVEDLGPARAMS ) ; DlgParams.HolePunchRemove.uStructSize = sizeof ( HOLEPUNCH ) ; DlgParams.HolePunchRemove.pBitmapRegion = &BitmapRegion ; DlgParams.HolePunchRemove.uBitmapStructSize = sizeof ( BITMAPHANDLE ) ; DlgParams.HolePunchRemove.iMinHoleWidth = 1 ; DlgParams.HolePunchRemove.iMinHoleHeight = 1 ; DlgParams.HolePunchRemove.iMaxHoleWidth = 150 ; DlgParams.HolePunchRemove.iMaxHoleHeight = 150 ; DlgParams.HolePunchRemove.iMinHoleCount = 2 ; DlgParams.HolePunchRemove.iMaxHoleCount = 4 ; DlgParams.HolePunchRemove.uFlags = HOLEPUNCH_SINGLE_REGION | HOLEPUNCH_LEAD_REGION | HOLEPUNCH_USE_LOCATION ; DlgParams.HolePunchRemove.iLocation = HOLEPUNCH_LEFT ; m_LAniWnd.DialogDocument()->EnableCallBack(FALSE); m_LAniWnd.DialogDocument()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogDocument()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogDocument()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogDocument()->SetHolePunchRemoveParams(&DlgParams) ; m_LAniWnd.DialogDocument()->DoModalHolePunchRemove(m_hWnd); } void CDemoView::OnImageDot() { BITMAPHANDLE BitmapRegion ; DOTREMOVEDLGPARAMS DlgParams; memset ( &BitmapRegion, 0, sizeof ( BITMAPHANDLE ) ) ; memset ( &DlgParams, 0, sizeof ( DOTREMOVEDLGPARAMS ) ) ; memset ( &DlgParams.DotRemove , 0, sizeof ( DOTREMOVE ) ) ; DlgParams.uStructSize = sizeof ( DOTREMOVEDLGPARAMS ) ; DlgParams.DotRemove.uStructSize = sizeof ( DOTREMOVE ) ; DlgParams.DotRemove.pBitmapRegion = &BitmapRegion ; DlgParams.DotRemove.uBitmapStructSize = sizeof ( BITMAPHANDLE ) ; DlgParams.DotRemove.iMinDotWidth = 1 ; DlgParams.DotRemove.iMinDotHeight = 1 ; DlgParams.DotRemove.iMaxDotWidth = 25 ; DlgParams.DotRemove.iMaxDotHeight = 25 ; DlgParams.DotRemove.uFlags = DOT_LEAD_REGION | DOT_SINGLE_REGION ; m_LAniWnd.DialogDocument()->EnableCallBack(FALSE); m_LAniWnd.DialogDocument()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogDocument()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogDocument()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogDocument()->SetDotRemoveParams(&DlgParams) ; m_LAniWnd.DialogDocument()->DoModalDotRemove(m_hWnd); } void CDemoView::OnImageInvertedtext() { BITMAPHANDLE BitmapRegion ; INVERTEDTEXTDLGPARAMS DlgParams; memset ( &BitmapRegion, 0, sizeof ( BITMAPHANDLE ) ) ; memset ( &DlgParams, 0, sizeof ( INVERTEDTEXTDLGPARAMS ) ) ; memset ( &DlgParams.InvertedText , 0, sizeof ( INVERTEDTEXT ) ) ; DlgParams.uStructSize = sizeof ( INVERTEDTEXTDLGPARAMS ) ; DlgParams.InvertedText.uStructSize = sizeof ( INVERTEDTEXT ) ; DlgParams.InvertedText.pBitmapRegion = &BitmapRegion ; DlgParams.InvertedText.uBitmapStructSize = sizeof ( BITMAPHANDLE ) ; DlgParams.InvertedText.iMinInvertHeight = 10 ; DlgParams.InvertedText.iMinInvertWidth = 10 ; DlgParams.InvertedText.uFlags = INVERTEDTEXT_SINGLE_REGION | INVERTEDTEXT_LEAD_REGION ; m_LAniWnd.DialogDocument()->EnableCallBack(FALSE); m_LAniWnd.DialogDocument()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogDocument()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogDocument()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogDocument()->SetInvertedTextParams(&DlgParams) ; m_LAniWnd.DialogDocument()->DoModalInvertedText(m_hWnd); } void CDemoView::OnImageBorder() { BITMAPHANDLE BitmapRegion ; BORDERREMOVEDLGPARAMS DlgParams; memset ( &BitmapRegion, 0, sizeof ( BITMAPHANDLE ) ) ; memset ( &DlgParams, 0, sizeof ( BORDERREMOVEDLGPARAMS ) ) ; memset ( &DlgParams.BorderRemove , 0, sizeof ( BORDERREMOVE ) ) ; DlgParams.uStructSize = sizeof ( BORDERREMOVEDLGPARAMS ) ; DlgParams.BorderRemove.uStructSize = sizeof ( BORDERREMOVE ) ; DlgParams.BorderRemove.iBorderPercent = 20 ; DlgParams.BorderRemove.iVariance = 0 ; DlgParams.BorderRemove.pBitmapRegion = &BitmapRegion ; DlgParams.BorderRemove.uBitmapStructSize = sizeof ( BITMAPHANDLE ) ; DlgParams.BorderRemove.iWhiteNoiseLength = 0 ; DlgParams.BorderRemove.uBorderToRemove = BORDER_ALL ; DlgParams.BorderRemove.uFlags = BORDER_SINGLE_REGION | BORDER_LEAD_REGION ; m_LAniWnd.DialogDocument()->EnableCallBack(FALSE); m_LAniWnd.DialogDocument()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogDocument()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogDocument()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogDocument()->SetBorderRemoveParams(&DlgParams) ; m_LAniWnd.DialogDocument()->DoModalBorderRemove(m_hWnd); } void CDemoView::OnRemoveredeye() { REMOVEREDEYEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( REMOVEREDEYEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( REMOVEREDEYEDLGPARAMS ) ; DlgParams.crNewColor = RGB(128,128,128); DlgParams.uThreshold = 0; DlgParams.nLightness = 100; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_REMOVEREDEYE_SHOW_APPLY:0); m_LAniWnd.DialogDocument()->EnableCallBack(FALSE); m_LAniWnd.DialogDocument()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogDocument()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogDocument()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogDocument()->SetRemoveRedEyeParams(&DlgParams) ; m_LAniWnd.DialogDocument()->DoModalRemoveRedEye(m_hWnd); } void CDemoView::OnToolMagnifyingglass() { MAGGLASSOPTIONS Opts; memset(&Opts, 0, sizeof(Opts)); //m_LAniWnd.GetMagGlassOptions(&Opts); Opts.uStructSize = sizeof(MAGGLASSOPTIONS); Opts.b3D = TRUE; Opts.bCenter = TRUE; Opts.bEllipse = FALSE; Opts.bIgnoreRgn = TRUE; Opts.clrBack = RGB(128,128,128); Opts.clrPen = 0; Opts.nBorderSize = 1; Opts.nCrosshair = CROSSHAIR_FINE; Opts.nHeight = 100; Opts.nWidth = 150; Opts.nZoom = 400; Opts.pMask = NULL; Opts.uMaskCount = 0; m_LAniWnd.SetMagGlassOptions(&Opts); m_LAniWnd.SetRgnFrameType(RGNFRAME_NONE); m_LAniWnd.EnableCallBack(FALSE); m_LAniWnd.SetToolType(TOOL_MAGGLASS); } void CDemoView::OnUpdateToolMagnifyingglass(CCmdUI* pCmdUI) { pCmdUI->SetCheck(TOOL_MAGGLASS == m_LAniWnd.GetToolType()); pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } /****************************************************** /* /* File Menu /* /******************************************************/ void CDemoView::OnConvert() { pTheApp->OnConvert(); } void CDemoView::OnJpegwebtuner() { JPEGWEBTUNERDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(JPEGWEBTUNERDLGPARAMS)); DlgParams.uStructSize = sizeof ( JPEGWEBTUNERDLGPARAMS ) ; DlgParams.uDlgFlags = DLG_JPEGWEBTUNER_SHOW_EXPORT | DLG_JPEGWEBTUNER_SHOW_INFORMATION | DLG_JPEGWEBTUNER_SHOW_OPTIONS | DLG_JPEGWEBTUNER_SHOW_SAVETHUMBNAIL ; m_LAniWnd.DialogWeb()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogWeb()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogWeb()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogWeb()->SetJPEGWebTunerParams(&DlgParams); m_LAniWnd.DialogWeb()->DoModalJPEGWebTuner(m_hWnd); } void CDemoView::OnPngwebtuner() { PNGWEBTUNERDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(PNGWEBTUNERDLGPARAMS)); DlgParams.uStructSize = sizeof ( PNGWEBTUNERDLGPARAMS ) ; DlgParams.uDlgFlags = DLG_PNGWEBTUNER_SHOW_EXPORT| DLG_PNGWEBTUNER_SHOW_INFORMATION | DLG_PNGWEBTUNER_SHOW_TOOL_COLORPICKER | DLG_PNGWEBTUNER_SHOW_TRANSPARENCY | DLG_PNGWEBTUNER_SHOW_ADDWINDOWCOLOR | (pTheApp->m_bDlgEnableApply? DLG_PNGWEBTUNER_SHOW_APPLY:0); m_LAniWnd.DialogWeb()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogWeb()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogWeb()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogWeb()->SetPNGWebTunerParams(&DlgParams); m_LAniWnd.DialogWeb()->DoModalPNGWebTuner(m_hWnd); } void CDemoView::OnGifwebtuner() { GIFWEBTUNERDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(GIFWEBTUNERDLGPARAMS )); DlgParams.uStructSize = sizeof ( GIFWEBTUNERDLGPARAMS ) ; DlgParams.uDlgFlags = DLG_GIFWEBTUNER_SHOW_EXPORT | DLG_GIFWEBTUNER_SHOW_INFORMATION | DLG_GIFWEBTUNER_SHOW_TOOL_COLORPICKER | DLG_GIFWEBTUNER_SHOW_TRANSPARENCY | DLG_GIFWEBTUNER_SHOW_OPTIONS | DLG_GIFWEBTUNER_SHOW_ADDWINDOWCOLOR ; m_LAniWnd.DialogWeb()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogWeb()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogWeb()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogWeb()->SetGIFWebTunerParams(&DlgParams); m_LAniWnd.DialogWeb()->DoModalGIFWebTuner(m_hWnd); } void CDemoView::OnImagemapper() { HTMLMAPPERDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(HTMLMAPPERDLGPARAMS)); DlgParams.uStructSize = sizeof ( HTMLMAPPERDLGPARAMS ) ; m_LAniWnd.DialogWeb()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogWeb()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogWeb()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogWeb()->SetHTMLMapperParams(&DlgParams); m_LAniWnd.DialogWeb()->DoModalHTMLMapper(m_hWnd); } void CDemoView::OnFileformatassociations() { FILESASSOCIATIONDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(FILESASSOCIATIONDLGPARAMS)); DlgParams.uStructSize = sizeof ( FILESASSOCIATIONDLGPARAMS ) ; DlgParams.pszFormats = NULL ; DlgParams.pszServerAppName = REGISTRYKEY_SERVER_NAME ; DlgParams.pszSelectedExt = NULL ; m_LAniWnd.DialogFile()->SetFilesAssociationParams(&DlgParams); m_LAniWnd.DialogFile()->DoModalFilesAssociation(m_hWnd); } void CDemoView::OnFastflip() { m_LAniWnd.FlipViewPerspective(); } void CDemoView::OnFastreverse() { m_LAniWnd.ReverseViewPerspective(); } void CDemoView::OnCanvassize() { CANVASRESIZEDLGPARAMS DlgParams; OnRgnCancel(); memset(&DlgParams,0,sizeof(CANVASRESIZEDLGPARAMS)); DlgParams.uStructSize = sizeof ( CANVASRESIZEDLGPARAMS ) ; DlgParams.nCurrentHeight = m_LAniWnd.GetHeight(); DlgParams.nCurrentWidth = m_LAniWnd.GetWidth(); DlgParams.nNewHeight = m_LAniWnd.GetHeight() ; DlgParams.nNewWidth = m_LAniWnd.GetWidth() ; DlgParams.uDlgFlags = DLG_CANVASRESIZE_SHOW_BACKCOLOR | DLG_CANVASRESIZE_SHOW_CURRENT_HEIGHT | DLG_CANVASRESIZE_SHOW_CURRENT_WIDTH | DLG_CANVASRESIZE_SHOW_HORIZPOS | DLG_CANVASRESIZE_SHOW_VERTZPOS | DLG_CANVASRESIZE_SHOW_KEEPASPECT ; m_LAniWnd.DialogImage()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImage()->SetCanvasResizeParams(&DlgParams); m_LAniWnd.DialogImage()->DoModalCanvasResize(m_hWnd); } void CDemoView::OnHistogram() { HISTOGRAMDLGPARAMS DlgParams; L_INT nLowBits, nHighBits; m_LAniWnd.GetMinMaxBits(&nLowBits, &nHighBits); m_LAniWnd.GetHandle()->LowBit = nLowBits; m_LAniWnd.GetHandle()->HighBit = nHighBits; DlgParams.uStructSize = sizeof(HISTOGRAMDLGPARAMS); DlgParams.crRedChannelPen = RGB(255,0,0); DlgParams.crGreenChannelPen = RGB(0,255,0); DlgParams.crBlueChannelPen = RGB(0,0,255); DlgParams.crMasterPen = RGB(0,0,0 ) ; DlgParams.uDlgFlags = DLG_HISTOGRAM_SHOW_VIEWSTYLE | DLG_HISTOGRAM_USERPENCOLORS ; DlgParams.uHistogramFlags = HIST_LOWHIGH_BITS ; m_LAniWnd.DialogImage()->SetHistogramParams(&DlgParams); m_LAniWnd.DialogImage()->DoModalHistogram(m_hWnd); } void CDemoView::OnAddborder() { L_INT nRet = SUCCESS_DLG_OK ; GETDIRECTORYDLGPARAMS DirectoryDlgParams ; ZeroMemory ( &DirectoryDlgParams, sizeof (GETDIRECTORYDLGPARAMS)) ; DirectoryDlgParams.uStructSize = sizeof (GETDIRECTORYDLGPARAMS); DirectoryDlgParams.pszDirectory = (L_TCHAR *) malloc ( L_MAXPATH * 2 ) ; DirectoryDlgParams.pszTitle = _T("Select Images Folder") ; DirectoryDlgParams.nBuffSize = L_MAXPATH ; DirectoryDlgParams.pszFilter = NULL ; DirectoryDlgParams.nFilterIndex = 1 ; m_LAniWnd.DialogFile()->SetDirectoryParams(&DirectoryDlgParams) ; nRet = m_LAniWnd.DialogFile()->DoModalGetDirectory ( m_hWnd) ; // Get the directory if ( nRet == SUCCESS_DLG_OK ) { DLGBITMAPLIST BitmapList ; L_INT i = 0 ; HCURSOR hCursor; hCursor = SetCursor (LoadCursor (NULL, IDC_WAIT)); BitmapList.pBitmapList = (DLGBITMAPLISTITEM *) malloc ( sizeof ( DLGBITMAPLISTITEM ) * DLG_IMAGE_LIST_COUNT ) ; if ( NULL == BitmapList.pBitmapList ) { SetCursor (hCursor); return ; } else { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { BitmapList.pBitmapList [ i ].pBitmap = (BITMAPHANDLE *) malloc ( sizeof ( BITMAPHANDLE ) ) ; BitmapList.pBitmapList [ i ].pszFileName = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; BitmapList.pBitmapList [ i ].pszDescription = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pBitmap,0, sizeof(BITMAPHANDLE)); memset(BitmapList.pBitmapList [ i ].pszFileName,0, sizeof ( L_TCHAR ) * L_MAXPATH ); memset(BitmapList.pBitmapList [ i ].pszDescription,0, sizeof ( L_TCHAR ) * L_MAXPATH ); } } if ( SUCCESS == GenerateBitampList ( DirectoryDlgParams.pszDirectory, &BitmapList, TRUE ) ) { ADDBORDERDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(ADDBORDERDLGPARAMS)); DlgParams.uStructSize = sizeof ( ADDBORDERDLGPARAMS ) ; DlgParams.nLeftThickness = m_LAniWnd.GetWidth ( ) /20 ; DlgParams.nTopThickness = m_LAniWnd.GetHeight ( ) /20 ; DlgParams.nRightThickness = m_LAniWnd.GetWidth ( )/20 ; DlgParams.nBottomThickness = m_LAniWnd.GetHeight ( )/20 ; DlgParams.nLocation = BORDER_OUTSIDE ; DlgParams.nStyle = BORDER_STYLE_GRADIENT ; DlgParams.nEffectStyle = BORDER_EFFECT_CURVEDIN ; DlgParams.nGradientStyle = BORDER_GRAD_CENTEROUT ; DlgParams.crGradientStart = RGB ( 94, 72, 20 ) ; DlgParams.crGradientEnd = RGB ( 156, 120, 34 ) ; DlgParams.nCurveIntensity = 200 ; DlgParams.bSoftCurve = TRUE ; DlgParams.bShadow = TRUE ; DlgParams.nShadowSize = 3 ; DlgParams.nShadowDirection = BORDER_SHADOW_LEFT ; DlgParams.bBumpyShadow = FALSE ; DlgParams.pBitmapList = &BitmapList ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_ADDBORDER_SHOW_APPLY:0); m_LAniWnd.DialogImage()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImage()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImage()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImage()->SetAddBorderParams(&DlgParams); SetCursor (hCursor); OnRgnCancel(); nRet = m_LAniWnd.DialogImage()->DoModalAddBorder(m_hWnd); } else SetCursor (hCursor); // clean up if ( NULL != BitmapList.pBitmapList ) { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { if ( NULL != BitmapList.pBitmapList [ i ].pBitmap ) { if ( BitmapList.pBitmapList [ i ].pBitmap->Flags.Allocated ) { LBitmap MyTmpBtmp; MyTmpBtmp.SetHandle(BitmapList.pBitmapList [ i ].pBitmap); MyTmpBtmp.Free(); } free ( BitmapList.pBitmapList [ i ].pBitmap ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszFileName ) { free ( BitmapList.pBitmapList [ i ].pszFileName ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszDescription ) { free ( BitmapList.pBitmapList [ i ].pszDescription ) ; } } free ( BitmapList.pBitmapList ) ; } return ; } else { return ; } } void CDemoView::OnAddframe() { L_INT nRet = SUCCESS_DLG_OK ; GETDIRECTORYDLGPARAMS DirectoryDlgParams ; ZeroMemory ( &DirectoryDlgParams, sizeof (GETDIRECTORYDLGPARAMS)) ; DirectoryDlgParams.uStructSize = sizeof (GETDIRECTORYDLGPARAMS); DirectoryDlgParams.pszDirectory = (L_TCHAR *) malloc ( L_MAXPATH * 2 ) ; DirectoryDlgParams.pszTitle = _T("Select Images Folder") ; DirectoryDlgParams.nBuffSize = L_MAXPATH ; DirectoryDlgParams.pszFilter = NULL ; DirectoryDlgParams.nFilterIndex = 1 ; m_LAniWnd.DialogFile()->SetDirectoryParams(&DirectoryDlgParams) ; nRet = m_LAniWnd.DialogFile()->DoModalGetDirectory ( m_hWnd) ; // Get the directory if ( nRet == SUCCESS_DLG_OK ) { DLGBITMAPLIST BitmapList ; L_INT i = 0 ; HCURSOR hCursor; hCursor = SetCursor (LoadCursor (NULL, IDC_WAIT)); BitmapList.pBitmapList = (DLGBITMAPLISTITEM *) malloc ( sizeof ( DLGBITMAPLISTITEM ) * DLG_IMAGE_LIST_COUNT ) ; if ( NULL == BitmapList.pBitmapList ) { SetCursor (hCursor); return ; } else { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { BitmapList.pBitmapList [ i ].pBitmap = (BITMAPHANDLE *) malloc ( sizeof ( BITMAPHANDLE ) ) ; BitmapList.pBitmapList [ i ].pszFileName = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; BitmapList.pBitmapList [ i ].pszDescription = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pBitmap,0, sizeof(BITMAPHANDLE)); memset(BitmapList.pBitmapList [ i ].pszFileName,0, sizeof ( L_TCHAR ) * L_MAXPATH ); memset(BitmapList.pBitmapList [ i ].pszDescription,0, sizeof ( L_TCHAR ) * L_MAXPATH ); } } if ( SUCCESS == GenerateBitampList ( DirectoryDlgParams.pszDirectory, &BitmapList, TRUE ) ) { ADDFRAMEDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(ADDFRAMEDLGPARAMS)); DlgParams.uStructSize = sizeof ( ADDFRAMEDLGPARAMS ) ; DlgParams.pBitmapList = &BitmapList ; DlgParams.bKeepFrameState = FALSE ; DlgParams.bUseMask = FALSE ; DlgParams.SmoothEdge = 0 ; DlgParams.nLocation = FRAME_INSIDE ; DlgParams.nQuality = FRAME_QUALITY_LOW ; DlgParams.uDlgFlags = (pTheApp->m_bDlgEnableApply?DLG_ADDFRAME_SHOW_APPLY:0); m_LAniWnd.DialogImage()->EnableToolbar(m_bDlgEnableToolBar); m_LAniWnd.DialogImage()->EnablePreview(pTheApp->m_bDlgEnablePreview ); m_LAniWnd.DialogImage()->EnableAutoProcess(m_bDlgAutoProcess); m_LAniWnd.DialogImage()->SetAddFrameParams(&DlgParams); SetCursor (hCursor); OnRgnCancel(); m_LAniWnd.DialogImage()->DoModalAddFrame(m_hWnd); } else SetCursor (hCursor); // clean up for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { if ( NULL != BitmapList.pBitmapList [ i ].pBitmap ) { if ( BitmapList.pBitmapList [ i ].pBitmap->Flags.Allocated ) { LBitmap MyTmpBtmp; MyTmpBtmp.SetHandle(BitmapList.pBitmapList [ i ].pBitmap); MyTmpBtmp.Free(); } free ( BitmapList.pBitmapList [ i ].pBitmap ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszFileName ) { free ( BitmapList.pBitmapList [ i ].pszFileName ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszDescription ) { free ( BitmapList.pBitmapList [ i ].pszDescription ) ; } } if ( NULL != BitmapList.pBitmapList ) { free ( BitmapList.pBitmapList ) ; } return ; } else { return ; } } void CDemoView::OnUpdateSmooth(CCmdUI* pCmdUI) { if((m_VersionLevel == TOOLKIT_LEVEL_DOCUMENT||m_VersionLevel == TOOLKIT_LEVEL_MEDICAL) && (m_LAniWnd.GetBitsPerPixel()== 1) ) pCmdUI->Enable(TRUE); else pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateInvertedtext(CCmdUI* pCmdUI) { if((m_VersionLevel == TOOLKIT_LEVEL_DOCUMENT||m_VersionLevel == TOOLKIT_LEVEL_MEDICAL) && (m_LAniWnd.GetBitsPerPixel()== 1) ) pCmdUI->Enable(TRUE); else pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateDot(CCmdUI* pCmdUI) { if((m_VersionLevel == TOOLKIT_LEVEL_DOCUMENT||m_VersionLevel == TOOLKIT_LEVEL_MEDICAL) && (m_LAniWnd.GetBitsPerPixel()== 1) ) pCmdUI->Enable(TRUE); else pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateBorder(CCmdUI* pCmdUI) { if((m_VersionLevel == TOOLKIT_LEVEL_DOCUMENT||m_VersionLevel == TOOLKIT_LEVEL_MEDICAL) && (m_LAniWnd.GetBitsPerPixel()== 1) ) pCmdUI->Enable(TRUE); else pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateHolepunch(CCmdUI* pCmdUI) { if((m_VersionLevel == TOOLKIT_LEVEL_DOCUMENT||m_VersionLevel == TOOLKIT_LEVEL_MEDICAL) && (m_LAniWnd.GetBitsPerPixel()== 1) ) pCmdUI->Enable(TRUE); else pCmdUI->Enable(FALSE); } void CDemoView::OnUpdateLine(CCmdUI* pCmdUI) { if((m_VersionLevel == TOOLKIT_LEVEL_DOCUMENT||m_VersionLevel == TOOLKIT_LEVEL_MEDICAL) && (m_LAniWnd.GetBitsPerPixel()== 1) ) pCmdUI->Enable(TRUE); else pCmdUI->Enable(FALSE); } L_INT CDemoView::GenerateBitampList ( L_TCHAR L_FAR * pszFolder, LPDLGBITMAPLIST pDlgBitmapList, L_BOOL fThumbnail ) { THUMBOPTIONS ThumbOptions ; ZeroMemory ( &ThumbOptions,sizeof ( THUMBOPTIONS ) ) ; ThumbOptions.uStructSize = sizeof ( THUMBOPTIONS ) ; ThumbOptions.nWidth = ( fThumbnail ? 250 : 0 ) ; ThumbOptions.nHeight = ( fThumbnail ? 250 : 0 ) ; ThumbOptions.nBits = 24 ; ThumbOptions.uCRFlags = CRF_BYTEORDERBGR ; ThumbOptions.bMaintainAspect = fThumbnail ; ThumbOptions.bForceSize = FALSE ; ThumbOptions.crBackColor = GetSysColor ( COLOR_BTNFACE ) ; ThumbOptions.bLoadStamp = FALSE ; ThumbOptions.bResample = TRUE ; m_nBitmapsCount = -1 ; MyFileBrowse BrowseDlg; BrowseDlg.m_pBitmapList = pDlgBitmapList; BrowseDlg.BrowseDir ( pszFolder, _T("*.*"), &ThumbOptions, FALSE, // don't stop on error FALSE, // do not recurse subdirectories FALSE, // do not expand multipage files 0, // no limit on file size 4000 * 1024) ; m_nBitmapsCount = BrowseDlg.m_ImageCount; if ( m_nBitmapsCount < 0 ) { MessageBox ( _T("There are file(s) cannot be loaded"), _T("Error"), 0 ) ; return FAILURE ; } else { pDlgBitmapList->nCount = m_nBitmapsCount + 1 ; } return SUCCESS ; } void CDemoView::OnPreview() { L_INT nRet = SUCCESS_DLG_OK ; PRINTPREVIEWDLGPARAMS DlgParams; memset(&DlgParams, 0, sizeof(DlgParams)); DlgParams.uStructSize = sizeof ( PRINTPREVIEWDLGPARAMS ) ; DlgParams.nCmdShow = SW_SHOW ; m_LAniWnd.DialogFile()->SetPrintPreviewParams(&DlgParams); nRet = m_LAniWnd.DialogFile()->DoModalPrintPreview(m_hWnd); } void CDemoView::OnPrintstitchedimages() { L_INT nRet = SUCCESS_DLG_OK ; PRINTSTITCHEDIMAGESDLGPARAMS DlgParams; ZeroMemory ( &DlgParams, sizeof (PRINTSTITCHEDIMAGESDLGPARAMS)) ; GETDIRECTORYDLGPARAMS DirectoryDlgParams ; ZeroMemory ( &DirectoryDlgParams, sizeof (GETDIRECTORYDLGPARAMS)) ; DirectoryDlgParams.uStructSize = sizeof (GETDIRECTORYDLGPARAMS); DirectoryDlgParams.pszDirectory = (L_TCHAR *)malloc ( L_MAXPATH * 2 ) ; DirectoryDlgParams.pszTitle = _T("Select Images Folder") ; DirectoryDlgParams.nBuffSize = L_MAXPATH ; DirectoryDlgParams.pszFilter = NULL ; DirectoryDlgParams.nFilterIndex = 1 ; m_LAniWnd.DialogFile()->SetDirectoryParams(&DirectoryDlgParams); nRet = m_LAniWnd.DialogFile()->DoModalGetDirectory( m_hWnd) ; // Get the directory if ( nRet == SUCCESS_DLG_OK ) { DLGBITMAPLIST BitmapList ; L_INT i = 0 ; HCURSOR hCursor; hCursor = SetCursor (LoadCursor (NULL, IDC_WAIT)); BitmapList.pBitmapList = (DLGBITMAPLISTITEM*)malloc ( sizeof ( DLGBITMAPLISTITEM ) * DLG_IMAGE_LIST_COUNT ) ; if ( NULL == BitmapList.pBitmapList ) { SetCursor (hCursor); return ; } else { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { BitmapList.pBitmapList [ i ].pBitmap = (pBITMAPHANDLE) malloc ( sizeof ( BITMAPHANDLE ) ) ; memset(BitmapList.pBitmapList [ i ].pBitmap, 0 , sizeof(BITMAPHANDLE)); BitmapList.pBitmapList [ i ].pszFileName = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pszFileName, 0 , sizeof ( L_TCHAR ) * L_MAXPATH ); BitmapList.pBitmapList [ i ].pszDescription = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pszDescription, 0 , sizeof ( L_TCHAR ) * L_MAXPATH ); } } if ( SUCCESS == GenerateBitampList ( DirectoryDlgParams.pszDirectory, &BitmapList, FALSE ) ) { DlgParams.uStructSize = sizeof ( PRINTSTITCHEDIMAGESDLGPARAMS ) ; DlgParams.pBitmapList = &BitmapList ; DlgParams.nCmdShow = SW_SHOW ; m_LAniWnd.DialogFile()->SetPrintStitchedImagesParams(&DlgParams); SetCursor (hCursor); nRet = m_LAniWnd.DialogFile()->DoModalPrintStitchedImages( m_hWnd) ; } else SetCursor (hCursor); // clean up for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { if ( NULL != BitmapList.pBitmapList [ i ].pBitmap ) { if ( BitmapList.pBitmapList [ i ].pBitmap->Flags.Allocated ) { LBitmap MyTmpBtmp; MyTmpBtmp.SetHandle(BitmapList.pBitmapList [ i ].pBitmap); MyTmpBtmp.Free(); } free ( BitmapList.pBitmapList [ i ].pBitmap ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszFileName ) { free ( BitmapList.pBitmapList [ i ].pszFileName ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszDescription ) { free ( BitmapList.pBitmapList [ i ].pszDescription ) ; } } if ( NULL != BitmapList.pBitmapList ) { free ( BitmapList.pBitmapList ) ; } if ( NULL != DlgParams.hDevMode ) { GlobalFree ( DlgParams.hDevMode ) ; } if ( NULL != DlgParams.hDevNames ) { GlobalFree ( DlgParams.hDevNames ) ; } return ; } else { return ; } } void CDemoView::OnUpdateFastflip(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.HasFloater() &&!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateFastreverse(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.HasFloater() &&!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateAddborder(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateAddframe(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateRemoveredeye(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateCanvassize(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateHistogram(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateMotionblur(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateRadialblur(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateZoomblur(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateGaussianblur(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateAntialias(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateUnsharpmask(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateMultiply(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateAddbitmaps(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateStitch(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateFreehandwave(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateWind(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdatePolar(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateZoomwave(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateRadialwave(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateSwirl(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateWave(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateWaveshear(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdatePunch(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateRipple(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateBending(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateCylindrical(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateSpherize(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImpression(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdatePixelate(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateEdgedetect(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateContourfilter(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateBalancecolors(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying() && !m_LAniWnd.IsGrayScale()); } void CDemoView::OnUpdateGrayscale(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateColoredgray(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateLocalequalize(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateRemapintensity(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateRemaphue(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdatePaletteeditor(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateFillwhite(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateFillyellow(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateFillred(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateFillmagenta(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateFillgreen(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateFillcyan(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateFillblue(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateConvert(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateJpegwebtuner(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdatePngwebtuner(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateGifwebtuner(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateImagemapper(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdateFileformatassociations(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdatePrintstitchedimages(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnUpdatePreview(CCmdUI* pCmdUI) { pCmdUI->Enable(!m_LAniWnd.IsPlaying()); } void CDemoView::OnPreferencesLoadtextfiles() { L_INT nRet; FILETXTOPTIONS TxtOptions; nRet = LFileSettings::GetTXTOptions( &TxtOptions, sizeof( TxtOptions ) ); if( SUCCESS == nRet ) { TxtOptions.bEnabled = !(TxtOptions.bEnabled); LFileSettings::SetTXTOptions( &TxtOptions ); } } void CDemoView::OnUpdatePreferencesLoadtextfiles(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here L_INT nRet; FILETXTOPTIONS TxtOptions; nRet = LFileSettings::GetTXTOptions( &TxtOptions, sizeof( TxtOptions ) ); if( SUCCESS == nRet ) pCmdUI->SetCheck(TxtOptions.bEnabled); } L_INT EXT_CALLBACK LUserAnimationWindow::SliceCallBack(pBITMAPHANDLE pBitmap, LPRECT lpSliceRect, L_INT nAngle, L_VOID L_FAR * pUserData) { LUserAnimationWindow* pAniWnd = NULL; if (pUserData == NULL) { return FALSE; } pAniWnd = (LUserAnimationWindow*) pUserData; if ( !pAniWnd->m_prcSlices ) { return FALSE; } pAniWnd->m_uSlicesCount++; pAniWnd->m_prcSlices = (LPRECT)GlobalReAllocPtr( pAniWnd->m_prcSlices, (sizeof(RECT) * pAniWnd->m_uSlicesCount), GHND); pAniWnd->m_prcSlices[pAniWnd->m_uSlicesCount-1] = *lpSliceRect; return SUCCESS; } L_INT LUserAnimationWindow::Slice(pSLICEBITMAPOPTIONS pOptions, L_INT32 L_FAR * pnDeskewAngle) { if(IsAllocated()) { return L_SLICEBITMAP(GetHandle(), pOptions, pnDeskewAngle, SliceCallBack, (L_VOID L_FAR *)this); } else { return ERROR_NO_BITMAP; } } void CDemoView::OnImageSlice() { SLICEBITMAPOPTIONS Options; L_INT nRet; CRgn rgn1, rgn2; CSliceDlg dlg; if (dlg.DoModal() != IDOK) return; m_LAniWnd.m_prcSlices = (LPRECT)GlobalAllocPtr( GHND,sizeof(RECT)); if (!m_LAniWnd.m_prcSlices) { MessageBox (TEXT("Not enough memory!"), TEXT("ERROR"), MB_OK); return ; } // Release any previous region m_LAniWnd.Region()->Free(); m_LAniWnd.CancelRgn(); m_LAniWnd.m_uSlicesCount = 0; memset(&Options,0,sizeof(Options)); Options.uStructSize = sizeof(SLICEBITMAPOPTIONS); // Deskew the sliced image, the deskew angle is located between -5 and 5 degrees Options.uFlags = SLC_DESKEW|SLC_DSKW_LINEAR; Options.uMaxDeskewAngle = 500; Options.crFill = RGB(0,0,0); nRet = m_LAniWnd.Slice(&Options, NULL); if (nRet == SUCCESS) { rgn1.CreateRectRgn(m_LAniWnd.m_prcSlices[0].left, m_LAniWnd.m_prcSlices[0].top, m_LAniWnd.m_prcSlices[0].right, m_LAniWnd.m_prcSlices[0].bottom); rgn2.CreateRectRgn(m_LAniWnd.m_prcSlices[1].left, m_LAniWnd.m_prcSlices[1].top, m_LAniWnd.m_prcSlices[1].right, m_LAniWnd.m_prcSlices[1].bottom); rgn1.CombineRgn(&rgn1,&rgn2,RGN_XOR); for(UINT i = 2; i < m_LAniWnd.m_uSlicesCount; i++) { rgn2.SetRectRgn( &m_LAniWnd.m_prcSlices[i] ); rgn1.CombineRgn(&rgn1,&rgn2,RGN_XOR); } m_LAniWnd.Region()->SetRgnHandle(HRGN(rgn1)); } else MessageBox (TEXT("Error occurred while trying to slice bitmap"), TEXT("ERROR"), MB_OK); GlobalFreePtr(m_LAniWnd.m_prcSlices); m_LAniWnd.m_prcSlices = NULL; }