deargui-vpl/ref/virtools/Includes/VIStaticImage.h

117 lines
2.9 KiB
C++

#if !defined(AFX_VIStaticImage_H__C97F2521_A0C9_11D3_BA37_00105A669BB5__INCLUDED_)
#define AFX_VIStaticImage_H__C97F2521_A0C9_11D3_BA37_00105A669BB5__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// VIStaticImage.h : header file
//
#include "VxMath.h"
#define VI_STATICIMAGE_ZOOMIN 1
#define VI_STATICIMAGE_ZOOMOUT 2
#define VI_STATICIMAGE_ZOOMONEONE 3
#define VI_STATICIMAGE_ZOOMBEST 4
#define VI_STATICIMAGE_ZOOMUPDATE 5
typedef BOOL (*VI_STATICIMAGE_POSTCALLBACK)(HBITMAP bitmap,void* arg);
/////////////////////////////////////////////////////////////////////////////
// VIStaticImage window
class AFX_EXT_CLASS VIStaticImage : public CWnd, public VIControl
{
// Construction
public:
VIStaticImage();
void SetAlphaControl(VIStaticImage* alpha);
void SetAttachedControl(VIStaticImage* control);
void SetImage(const VxImageDescEx& desc, CKObject *ckObject);
void SetBorder(BOOL Border);
BOOL ManageZoom(char op);
void SetZoom(float zoom);
float GetZoom();
void CalculateBestFit();
COLORREF GetPixelColor(int x,int y);
BOOL CanDo(int op);
BOOL IsInImage(int x,int y);
void ToClient(RECT& rect);
BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
void InitializeBitmap();
void SetPostCallback(VI_STATICIMAGE_POSTCALLBACK Function,void* Argument);
void GetConvertValuesFromMask(DWORD mask,int& shift,int& bytepos,int& multoalign);
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(VIStaticImage)
protected:
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~VIStaticImage();
// Generated message map functions
protected:
//{{AFX_MSG(VIStaticImage)
afx_msg void OnPaint();
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
void UpdateBitmapInfo();
void RecenterBitmapInfo();
void CopySettingsToAttached();
void CheckImageDesc();
HBITMAP m_Bitmap;
BITMAP m_BitmapInfo;
// may be an alpha channel or the source image if this is the alpha
VIStaticImage* m_AttachedImage;
BOOL m_IsAlpha;
VxImageDescEx m_ImageDesc;
void* m_SurfPtr;
BOOL m_Border;
float m_Zoom;
int m_DestPosX,m_DestPosY,m_DestSizeX,m_DestSizeY,m_DestWidth,m_DestHeight;
int m_SrcPosX,m_SrcPosY,m_SrcSizeX,m_SrcSizeY;
int m_SrcWidth,m_SrcHeight;
int m_SrcBitsPerPixel,m_SrcBytesPerLine,m_SrcBytesPerPixel;
int m_NbZoomValues;
float *m_ZoomValue;
VI_STATICIMAGE_POSTCALLBACK m_Callback;
void* m_Argument;
CKObject *m_ckObject;
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_VIStaticImage_H__C97F2521_A0C9_11D3_BA37_00105A669BB5__INCLUDED_)