#pragma once
|
|
#include "../stdafx.h"
|
#include <Gdiplus.h>
|
#include <atlconv.h>
|
#pragma comment(lib,"gdiplus")
|
using namespace Gdiplus;
|
|
|
|
|
namespace SOUI
|
{
|
|
class AFX_EXT_CLASS SRoundImageCenter:public SWindow
|
{
|
SOUI_CLASS_NAME(SRoundImageCenter, L"RoundImageCenter")
|
public:
|
SRoundImageCenter(void);
|
~SRoundImageCenter(void);
|
|
//˳ʱÕë½Ç¶ÈÐýת
|
enum ROTATEANGLE
|
{
|
ROTATEANGLE0 = 0,
|
ROTATEANGLE90,
|
ROTATEANGLE180,
|
ROTATEANGLE270,
|
};
|
public:
|
void OnPaint(IRenderTarget *pRT);
|
/* void OnLButtonDown(UINT nFlags, SOUI::CPoint point);
|
void OnLButtonUp(UINT nFlags, SOUI::CPoint point);
|
void OnNcLButtonUp(UINT nFlags, SOUI::CPoint point);
|
void OnMouseMove(UINT nFlags, SOUI::CPoint point);*/
|
protected:
|
SOUI_MSG_MAP_BEGIN()
|
MSG_WM_PAINT_EX(OnPaint)
|
/*MSG_WM_LBUTTONDOWN(OnLButtonDown)
|
MSG_WM_LBUTTONUP(OnLButtonUp)
|
MSG_WM_NCLBUTTONUP(OnNcLButtonUp)
|
MSG_WM_MOUSEMOVE(OnMouseMove)*/
|
SOUI_MSG_MAP_END()
|
public:
|
FilterLevel m_fl;
|
//ÉèÖõľø¶Ô·¾¶¡£
|
void SetCenterImage(SStringT img);
|
int GetCenterImageWidth();
|
int GetCenterImageHeight();
|
SStringT GetCenterImage();
|
void SetRotate(ROTATEANGLE angle);
|
int GetCurrentK();
|
void SetCurrentTransferRect(int val);
|
void MoveImage(int xpos, int ypos);
|
void SetCurrentRect(RECT rc);
|
RECT GetTransferRect();
|
void ChangedCurrentRect(RECT oldRc);
|
CAutoRefPtr<IBitmap> GetShowImage(int nWidth = 100, int nHeight = 100);
|
BOOL SaveSelImage( CString strImagePath, int nWidth = 100, int nHeight = 100,CString strImageType = _T("image/png") );
|
private:
|
void InitCenterUI(int w, int h);
|
bool ImageFromIDResource(UINT nID, CString strType, Image * & pImg ,HINSTANCE hInstance);
|
private:
|
int GetK(int w, int h);
|
RECT GetDestDrawRect(int k);
|
|
private:
|
Bitmap * m_pSelImage;
|
Bitmap * m_pOrignImage;
|
ROTATEANGLE m_angle;
|
SStringT m_imageStr;
|
float m_fAngle;
|
int m_k;
|
RECT m_currentRect;
|
RECT m_currentTransferRect;
|
SOUI::CPoint m_ptStart;
|
Gdiplus::Image* m_pImgRoundMask;
|
};
|
|
}
|