⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yctrls.h

📁 Windows mobile下的透明控件(皮肤控件) 当前Windows mobile下的皮肤控件还很少
💻 H
字号:

#pragma once

#include "stdafx.h"

#define		WM_LBUTTONCLICK				(WM_USER + 1975)
#define		WM_MOUSELEAVE				(WM_USER + 1977)

typedef struct	_CreateStyle
{
	DWORD		dwStyle;
	DWORD		dwExStyle;
}CREATESTYLE, *pCREATESTYLE;

typedef enum WINDOWSTATE{ WS_Y_NORMAL = 0, WS_Y_MAX, WS_Y_MIN, WS_Y_MAXSHOW, WS_Y_MAXHIDE, WS_Y_MOVE };
typedef enum FORMSTYLE{ FS_Y_DAILOG = 0, FS_FORM, FS_FULLSCREEN, FS_SCREENCLIENT, FS_SCREENCLIENT_NOMENU, FS_SCREENCENTER };
typedef enum CLASSID{ CID_Y_WIN = 1, CID_Y_FORM, CID_Y_BUTTON, CID_Y_CHECKBOX, CID_Y_RADIOBOX, CID_Y_LABEL, CID_Y_EDIT,
						CID_Y_WORD, CID_Y_COMBOBOX, CID_Y_DATEBOX, CID_Y_TIMEBOX, CID_Y_PANEL, CID_Y_PAGE,
						CID_Y_SCROLLBAR, CID_Y_TREEVIEW, CID_Y_LISTVIEW, CID_Y_LISTBOX };

#define		MS_Y_UP				0x01
#define		MS_Y_DOWN			0x02
#define		MS_Y_MOVE			0x04

#define		SKS_Y_ALT			0x01
#define		SKS_Y_SHIFT			0x02
#define		SKS_Y_CTRL			0x04


/*********************************************************************************************
*								CWin														 *
*																							 *
*		YCode Y代码 YCtrl Y控件 Windows Mobile 透明控件 2008 YCtrl 1.0						 *
*			作者:卢益贵 QQ:48092788 luyigui.blog.nnsky.com									 *
*																							 *
**********************************************************************************************/
class CList;

class CWin
{
private:	
	
protected:
	CLASSID			m_cidClassID;
	WCHAR			*m_pszText;
	int				m_nTextLen;
	CWin			*m_pOwner;
	CWin			*m_pParent;
	CList			*m_pCtrls;
	HBITMAP			m_hBitmap;
	HDC				m_hDC;
	HWND			m_hWnd;
	int				m_nLeft;
	int				m_nTop;
	int				m_nWidth;
	int				m_nHeigth;
	WINDOWSTATE		m_wsWinState;
	RECT			m_rcClientRect;
	BOOL			m_bEnabled;
	BOOL			m_bStretch;

	HFONT			m_hFont;
	LOGFONT			m_lFont;
	HPEN			m_hPen;
	COLORREF		m_clTextColor;
	DWORD			m_dwMouseState;

	void CreateBitmap( void );
	
	virtual void CreateStyle( pCREATESTYLE pCreateStyle );
	virtual void OnCreated( void );
	static LRESULT CALLBACK WinProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );

	virtual void OnDraw( void );
	virtual void OnPaint( HDC hdc );
	virtual void OnPaint( HWND hWnd );
	virtual void OnPaint( void );

public:
	CWin();
	~CWin();	
	BOOL RegClass( LPCWSTR lpszClassName );
public:
	BOOL Create(  CWin *pOwner, CWin *pParent, HMENU hMenu, int nLeft, int nTop, int nWidth, int nHeigth, 
				  LPCWSTR lpszClassName, LPCWSTR lpszCaption );
	virtual LRESULT WindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
	
	HWND GetHandle( void );
	int GetLeft( void );
	int GetTop( void );
	int GetWidth( void );
	int GetHeigth( void );
	void SetPos( int nLeft, int nTop, int nWidth, int nHeigth );

	void SetVisible( BOOL bVisible );
	BOOL GetVisible( void );
	void SetEnabled( BOOL bEnabled );
	BOOL GetEnabled( void );
	void SetStretch( BOOL bStretch );
	BOOL GetStretch( void );
	void SetParent( CWin *pParent );
	CWin *GetParent( void );
	CWin *GetOwner( void );

	HFONT CreateFont( void );
	LOGFONT GetFont( void );
	void SetFont( LOGFONT * lFont );
	COLORREF GetTextColor( void );
	void SetTextColor( COLORREF );
	LPCWSTR GetText( void );
	void SetText( LPCWSTR lpszText );
	int GetTextLen( void );
	void SetTextSize( int nSize );

	void AddCtrl( CWin *pCtrl );
	void DeleteCtrl( CWin *pCtrl );
	int GetCtrlCount( void );
	CWin *GetCtrl( int nIndex );

	void GetCtrlBKGND( CWin *pCtrl, HDC hdc );	
	void ChangeSkin( void );
	void Invalidate( void );

	DWORD GetClassID( void );
};

/*********************************************************************************************
*								CForm														 *
*																							 *
*		YCode Y代码 YCtrl Y控件 Windows Mobile 透明控件 2008 YCtrl 1.0						 *
*			作者:卢益贵 QQ:48092788 luyigui.blog.nnsky.com									 *
*																							 *
**********************************************************************************************/
class CForm : public CWin
{
private:
	BOOL			m_bOnMinQuit;
protected:	
	void OnDraw( void );
	FORMSTYLE m_fsFormStyle;
	void CreateStyle( pCREATESTYLE pCreateStyle );
public:
    CForm();
    ~CForm();

public:
    BOOL Create( HMENU hMenu, int nLeft, int nTop, int nWidth, int nHeigth, LPCWSTR lpszClassName, LPCWSTR lpszCaption );	
	void Show(int nCmdShow);
	void SetFormStyle( FORMSTYLE fsFormStyle, BOOL bTop = FALSE );
	LRESULT CForm::WindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
	void SetOnMinQuit( BOOL bQuit );
};

/*********************************************************************************************
*								CCtrl														 *
*																							 *
*		YCode Y代码 YCtrl Y控件 Windows Mobile 透明控件 2008 YCtrl 1.0						 *
*			作者:卢益贵 QQ:48092788 luyigui.blog.nnsky.com									 *
*																							 *
**********************************************************************************************/
class CCtrl : public CWin
{
private:

protected:
	DWORD			m_dwCtrlID;
	DWORD			m_dwTextAlign;
	void DrawText( HDC hdc, RECT rc, LPCWSTR lpszText, DWORD dwTextAlign );
	void CreateStyle( pCREATESTYLE pCreateStyle );
public:
    CCtrl();
    ~CCtrl();

public:
	BOOL Create( CWin *pOwner, CWin *pParent, DWORD dwCtrlID, int nLeft, int nTop, int nWidth, int nHeigth, LPCWSTR lpszClassName, LPCWSTR lpszCaption );
	DWORD GetTextAlign( void );
	void SetTextAlign( DWORD dwTextAlign );
};

/*********************************************************************************************
*								CCtrl														 *
*																							 *
*		YCode Y代码 YCtrl Y控件 Windows Mobile 透明控件 2008 YCtrl 1.0						 *
*			作者:卢益贵 QQ:48092788 luyigui.blog.nnsky.com									 *
*																							 *
**********************************************************************************************/
class CBtt : public CCtrl
{
private:	
	
protected:	
	COLORREF		m_clColorNormal;
	COLORREF		m_clColorDown;
	COLORREF		m_clColorFocus;
	void OnDraw( void );
	void CreateStyle( pCREATESTYLE pCreateStyle );
public:
    CBtt();
    ~CBtt();

public:
	BOOL Create( CWin *pOwner, CWin *pParent,  DWORD dwCtrlID, int nLeft, int nTop, int nWidth, int nHeigth, LPCWSTR lpszCaption );
	LRESULT WindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
	void SetColorNormal( COLORREF clColor );
	void SetColorDown( COLORREF clColor );
	void SetColorFocus( COLORREF clColor );
};

/*********************************************************************************************
*								CCheckBox													 *
*																							 *
*		YCode Y代码 YCtrl Y控件 Windows Mobile 透明控件 2008 YCtrl 1.0						 *
*			作者:卢益贵 QQ:48092788 luyigui.blog.nnsky.com									 *
*																							 *
**********************************************************************************************/
class CCheckBox : public CBtt
{
private:	
	BOOL			m_bChecked;
protected:
	void OnDraw( void );
public:
    CCheckBox();
    ~CCheckBox();
	LRESULT WindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
	void SetChecked( BOOL bChecked );
	BOOL GetChecked( void );
public:
	
};

/*********************************************************************************************
*								CRadioBox													 *
*																							 *
*		YCode Y代码 YCtrl Y控件 Windows Mobile 透明控件 2008 YCtrl 1.0						 *
*			作者:卢益贵 QQ:48092788 luyigui.blog.nnsky.com									 *
*																							 *
**********************************************************************************************/
class CRadioBox : public CBtt
{
private:	
	BOOL			m_bChecked;
protected:
	void OnDraw( void );
public:
    CRadioBox();
    ~CRadioBox();
	LRESULT WindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
	void SetChecked( BOOL bChecked );
	BOOL GetChecked( void );
public:
	
};

/*********************************************************************************************
*								CLabel														 *
*																							 *
*		YCode Y代码 YCtrl Y控件 Windows Mobile 透明控件 2008 YCtrl 1.0						 *
*			作者:卢益贵 QQ:48092788 luyigui.blog.nnsky.com									 *
*																							 *
**********************************************************************************************/
class CLabel : public CCtrl
{
private:	
	
protected:
	void OnDraw( void );
public:
    CLabel();
    ~CLabel();

public:
	BOOL Create( CWin *pOwner, CWin *pParent,  DWORD dwCtrlID, int nLeft, int nTop, int nWidth, int nHeigth, LPCWSTR lpszCaption );
	void SetWordWrap( BOOL bIsWrap );
};

/*********************************************************************************************
*								CPanel														 *
*																							 *
*		YCode Y代码 YCtrl Y控件 Windows Mobile 透明控件 2008 YCtrl 1.0						 *
*			作者:卢益贵 QQ:48092788 luyigui.blog.nnsky.com									 *
*																							 *
**********************************************************************************************/
class CPanel : public CCtrl
{
private:	
	BOOL			m_bIsGroup;
	COLORREF		m_clBorderColor;
protected:
	void OnDraw( void );
public:
    CPanel();
    ~CPanel();
public:
	BOOL Create( CWin *pOwner, CWin *pParent,  DWORD dwCtrlID, int nLeft, int nTop, int nWidth, int nHeigth, LPCWSTR lpszCaption );
	void SetStyle( BOOL bIsGroup );
	void SetBorderColor( COLORREF clColor );
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -