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

📄 ptctrlbase.cpp

📁 wince下的画图程序
💻 CPP
字号:
#include "StdAfx.h"
#include "PtCtrlBase.h"

#include "CEPaint.h"

#include <afx.h>

#if defined DEBUG
void dbg_out(const TCHAR* fmt)
{
    TRACE(fmt);
}
#endif

INT InitPbCtrlBase(PtCtrlBase * pPtCtrlBase)
{
	
	pPtCtrlBase->PtCtrl_Init = PtCtrlBase_Init;
	pPtCtrlBase->PtCtrl_Destroy = PtCtrlBase_Destroy;
	
	pPtCtrlBase->PtCtrl_OnPaintStart = PtCtrlBase_OnPaintStart;
	pPtCtrlBase->PtCtrl_OnPaintEnd = PtCtrlBase_OnPaintEnd;
	
	pPtCtrlBase->PtCtrl_OnStyleChange = PtCtrlBase_OnStyleChange;
	pPtCtrlBase->PtCtrl_OnColorChange = PtCtrlBase_OnColorChange;
	
	pPtCtrlBase->PtCtrl_OnMouseDown = PtCtrlBase_OnMouseDown;
	pPtCtrlBase->PtCtrl_OnMouseMove = PtCtrlBase_OnMouseMove;
	pPtCtrlBase->PtCtrl_OnMouseRelease = PtCtrlBase_OnMouseRelease;
	
	pPtCtrlBase->PtCtrl_OnDrawBoard = PtCtrlBase_OnDrawBoard;
	pPtCtrlBase->PtCtrl_OnDrawBoard = PtCtrlBase_OnDrawStyle;

	return 0;
}

LRESULT CALLBACK PtWinCtrl_Proc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	return DefWindowProc(hWnd,message,wParam,lParam);
}

INT PtCtrlBase_Init(PtCtrlBase* pPtCtrl, INT tx /* = -1 */, INT ty /* = -1 */)
{
	pPtCtrl->m_ctrl_id = PtCtrlType_Unknown;
	
	pPtCtrl->m_ctrl_style = 0;
    
	
	pPtCtrl->m_pdc = NULL;
	
	pPtCtrl->m_state = PtCtrlState_Unknown;
	
	pPtCtrl->m_mouse_state = 0;

	pPtCtrl->m_cx = -1;
	pPtCtrl->m_cy = -1;

	pPtCtrl->m_last_draw_flag = FALSE;
	
	return 0;
}

INT PtCtrlBase_Destroy(PtCtrlBase* pPtCtrl, INT tx /* = -1 */, INT ty /* = -1 */)
{
	DeleteDC(m_pt_app_info.m_pt_backup_hdc); 

	return 0;
}

INT PtCtrlBase_OnPaintStart(PtCtrlBase* pPtCtrl, INT tx /* = -1 */, INT ty /* = -1 */)
{
	pPtCtrl->m_state = PtCtrlState_Enable;
    SetClassLong(m_pt_app_info.m_pt_board_hwnd,GCL_HCURSOR,(LONG)m_pt_app_info.m_pt_ctrl_hcursor[m_pt_app_info.m_PtCtrl_Idx]);
	return 0;
}

INT PtCtrlBase_OnPaintEnd(PtCtrlBase* pPtCtrl, INT tx /* = -1 */, INT ty /* = -1 */)
{
	pPtCtrl->m_state = PtCtrlState_Disable;
	pPtCtrl->m_mouse_state = 0;

	return 0;
}

INT PtCtrlBase_OnStyleChange(PtCtrlBase* pPtCtrl, INT tx /* = -1 */, INT ty /* = -1 */)
{
    //m_pt_app_info.m_pt_style_idx = tx;
	pPtCtrl->m_ctrl_style = tx;
	
	return 0;
}

INT PtCtrlBase_OnColorChange(PtCtrlBase* pPtCtrl, INT tx /* = -1 */, INT ty /* = -1 */)
{
	if(ty == 0)
		m_pt_app_info.m_color_cur = tx;
	else if(ty == 1)
		m_pt_app_info.m_color_bk_cur = tx;

	RECT rt;
	GetWindowRect(m_pt_app_info.m_color_cur_bn_hwnd,&rt);
	
	InvalidateRect(m_pt_app_info.m_main_win_hwnd,&rt,FALSE);

	return 0;
}

INT PtCtrlBase_OnMouseDown(PtCtrlBase* pPtCtrl, INT tx /* = -1 */, INT ty /* = -1 */)
{
	pPtCtrl->m_mouse_state |= PT_MOUSE_DOWN;

	return 0;
}

INT PtCtrlBase_OnMouseMove(PtCtrlBase* pPtCtrl, INT tx /* = -1 */, INT ty /* = -1 */)
{
	pPtCtrl->m_mouse_state |= PT_MOUSE_MOVE;

	return 0;
}

INT PtCtrlBase_OnMouseRelease(PtCtrlBase* pPtCtrl, INT tx /* = -1 */, INT ty /* = -1 */)
{

	pPtCtrl->m_mouse_state &= ~PT_MOUSE_DOWN;
	pPtCtrl->m_mouse_state |= PT_MOUSE_RELEASE;

	return 0;
}

INT PtCtrlBase_OnDrawBoard(PtCtrlBase* pPtCtrl, INT tx /* = -1 */, INT ty /* = -1 */)
{
	
	return 0;
}

INT PtCtrlBase_OnDrawStyle(PtCtrlBase* pPtCtrl, INT tx /* = -1 */, INT ty /* = -1 */)
{
	
	return 0;
}



//////////////////////////////////////////////////////////////////////////
//addtional

INT PtCreateRect(INT cx1 ,INT cy1, INT cx2, INT cy2, INT max_x, INT max_y, LPRECT rt)
{
	if(cx1 < cx2)
	{
		rt->left = cx1;
	    rt->right = cx2;
	}
	else
    {
		rt->left = cx2;
	    rt->right = cx1;
	}


	if(cy1 < cy2)
	{
		rt->top = cy1;
	    rt->bottom = cy2;
	}
	else
    {
		rt->top = cy2;
	    rt->bottom = cy1;
	}

	rt->left --;
	rt->right ++;
	rt->top --;
	rt->bottom ++;
		
	rt->left < 0 ? rt->left = 0 : rt->left ;
    rt->right > max_x ? rt->right = max_x : rt->right ;  

	rt->top < 0 ? rt->top = 0 : rt->top ;
    rt->bottom > max_y ? rt->bottom = max_y : rt->bottom ;  
	
	return 0;
}

⌨️ 快捷键说明

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