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

📄 ptctrl_zoom.cpp

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

#include "CEPaint.h"

#include <afx.h>

PtCtrl_Zoom g_ptctl_zoom;

extern PtAppInfo m_pt_app_info;

INT InitPbCtrl_Zoom(PtCtrl_Zoom *pPtCtrl_Zoom)
{
    InitPbCtrlBase((PtCtrlBase*)pPtCtrl_Zoom);
	
	pPtCtrl_Zoom->m_ptctrl_base.PtCtrl_Init = PtCtrl_Zoom_Init;
	pPtCtrl_Zoom->m_ptctrl_base.PtCtrl_Destroy = PtCtrl_Zoom_Destroy;
	
	pPtCtrl_Zoom->m_ptctrl_base.PtCtrl_OnPaintStart = PtCtrl_Zoom_OnPaintStart;
	pPtCtrl_Zoom->m_ptctrl_base.PtCtrl_OnPaintEnd = PtCtrl_Zoom_OnPaintEnd;
	
	pPtCtrl_Zoom->m_ptctrl_base.PtCtrl_OnStyleChange = PtCtrl_Zoom_OnStyleChange;
	pPtCtrl_Zoom->m_ptctrl_base.PtCtrl_OnColorChange = PtCtrl_Zoom_OnColorChange;
	
	pPtCtrl_Zoom->m_ptctrl_base.PtCtrl_OnMouseDown = PtCtrl_Zoom_OnMouseDown;
	pPtCtrl_Zoom->m_ptctrl_base.PtCtrl_OnMouseMove = PtCtrl_Zoom_OnMouseMove;
	pPtCtrl_Zoom->m_ptctrl_base.PtCtrl_OnMouseRelease = PtCtrl_Zoom_OnMouseRelease;

	pPtCtrl_Zoom->m_ptctrl_base.PtCtrl_OnDrawBoard = PtCtrl_Zoom_OnDrawBoard;
	pPtCtrl_Zoom->m_ptctrl_base.PtCtrl_OnDrawStyle = PtCtrl_Zoom_OnDrawStyle;
		
	return 0;
}

INT PtCtrl_Zoom_Init(PtCtrlBase* pPtCtrl,INT tx /* = -1 */, INT ty /* = -1 */)
{
	PtCtrlBase_Init(pPtCtrl);

	PtCtrl_Zoom *pPtCtrl_Zoom = (PtCtrl_Zoom*)pPtCtrl;
	
	pPtCtrl_Zoom->m_ptctrl_base.m_ctrl_id = PtCtrlType_GetColor;

	pPtCtrl_Zoom->m_opt_flag = PtCtrl_Zoom_Nothing;
	
	pPtCtrl_Zoom->cx = -1;
	pPtCtrl_Zoom->cy = -1;

	pPtCtrl_Zoom->m_pen = NULL;
	return 0;
}

INT PtCtrl_Zoom_Destroy(PtCtrlBase* pPtCtrl, INT tx /* = -1 */, INT ty /* = -1 */)
{
	PtCtrlBase_Destroy(pPtCtrl);
   
    PtCtrl_Zoom *pPtCtrl_Zoom = (PtCtrl_Zoom*)pPtCtrl;

	if(pPtCtrl_Zoom->m_pen != NULL)
		DeleteObject(pPtCtrl_Zoom->m_pen);

	return 0;
}

INT PtCtrl_Zoom_OnPaintStart(PtCtrlBase* pPtCtrl,  INT tx /* = -1 */, INT ty /* = -1 */)
{
	PtCtrlBase_OnPaintStart(pPtCtrl);

	PtCtrl_Zoom *pPtCtrl_Zoom = (PtCtrl_Zoom*)pPtCtrl;
	
	pPtCtrl->PtCtrl_OnColorChange(pPtCtrl,m_pt_app_info.m_color_cur,0);
	
	
	return 0;
}

INT PtCtrl_Zoom_OnPaintEnd(PtCtrlBase* pPtCtrl,  INT tx /* = -1 */, INT ty /* = -1 */)
{
	PtCtrlBase_OnPaintEnd(pPtCtrl);

	PtCtrl_Zoom *pPtCtrl_Zoom = (PtCtrl_Zoom*)pPtCtrl;
    
    pPtCtrl_Zoom->cx = -1;
	pPtCtrl_Zoom->cy = -1;

	pPtCtrl_Zoom->m_opt_flag = PtCtrl_Zoom_Nothing;
	

	return 0;
}

INT PtCtrl_Zoom_OnStyleChange(PtCtrlBase* pPtCtrl,  INT tx /* = -1 */, INT ty /* = -1 */)
{
	PtCtrlBase_OnStyleChange(pPtCtrl,tx);
	
	PtCtrl_Zoom *pPtCtrl_Zoom = (PtCtrl_Zoom*)pPtCtrl;
	
	
	return 0;
}

INT PtCtrl_Zoom_OnColorChange(PtCtrlBase* pPtCtrl,  INT tx /* = -1 */, INT ty /* = -1 */)
{
	PtCtrlBase_OnColorChange(pPtCtrl,tx,ty);
	
	PtCtrl_Zoom *pPtCtrl_Zoom = (PtCtrl_Zoom*)pPtCtrl;
	
	if(pPtCtrl_Zoom->m_pen != NULL)
		DeleteObject(pPtCtrl_Zoom->m_pen);

	pPtCtrl_Zoom->m_pen = CreatePen(PS_SOLID,0,m_pt_app_info.m_color_cur);
	
	
	return 0;
}


INT PtCtrl_Zoom_OnMouseDown(PtCtrlBase* pPtCtrl,  INT tx /* = -1 */, INT ty /* = -1 */)
{
	PtCtrlBase_OnMouseDown(pPtCtrl);
    
	PtCtrl_Zoom *pPtCtrl_Zoom = (PtCtrl_Zoom*)pPtCtrl;

	pPtCtrl_Zoom->m_ptctrl_base.m_cx = tx;
	pPtCtrl_Zoom->m_ptctrl_base.m_cy = ty;

	pPtCtrl_Zoom->cx = tx;
    pPtCtrl_Zoom->cy = ty;

	m_pt_app_info.m_pt_zoom_size = pPtCtrl_Zoom->m_ptctrl_base.m_ctrl_style;


    m_pt_app_info.m_pt_draw_rect = m_pt_app_info.m_pt_board_rect; 
	PT_SET_SMALL(m_pt_app_info.m_pt_draw_rect.right,(m_pt_app_info.m_bmp_file_info.bmiHeader.biWidth << m_pt_app_info.m_pt_zoom_size));
	PT_SET_SMALL(m_pt_app_info.m_pt_draw_rect.bottom,(m_pt_app_info.m_bmp_file_info.bmiHeader.biHeight << m_pt_app_info.m_pt_zoom_size));

	//m_pt_app_info.m_pt_bakup_pos.x = tx;
	//m_pt_app_info.m_pt_bakup_pos.y = ty;

// 	INT sc_value = m_pt_app_info.m_pt_draw_rect.right >> m_pt_app_info.m_pt_zoom_size;
// 	
// 	if((m_pt_app_info.m_pt_bakup_pos.x + sc_value) > m_pt_app_info.m_pt_backup_rect.right)
// 		m_pt_app_info.m_pt_bakup_pos.x = m_pt_app_info.m_pt_backup_rect.right - sc_value;
// 	
// 	sc_value = m_pt_app_info.m_pt_draw_rect.bottom >> m_pt_app_info.m_pt_zoom_size;
// 	if((m_pt_app_info.m_pt_bakup_pos.y + sc_value) > m_pt_app_info.m_pt_backup_rect.bottom)
// 		m_pt_app_info.m_pt_bakup_pos.y = m_pt_app_info.m_pt_backup_rect.bottom - sc_value;

//for more customer 
	m_pt_app_info.m_pt_bakup_pos.x = 0;
	m_pt_app_info.m_pt_bakup_pos.y = 0;

	

	m_pt_app_info.m_pt_board_flag |= PT_BOARD_FLAG_RELOAD;

	AdjustScrollBar();
	InvalidateRect(m_pt_app_info.m_pt_board_hwnd, &m_pt_app_info.m_pt_board_rect,FALSE);
	//TRACE("On Mouse Down\n");
	
	return 0;
}

INT PtCtrl_Zoom_OnMouseMove(PtCtrlBase* pPtCtrl,  INT tx /* = -1 */, INT ty /* = -1 */)
{
	PtCtrlBase_OnMouseMove(pPtCtrl);

	return 0;
}

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


	return 0;
}


INT PtCtrl_Zoom_OnDrawBoard(PtCtrlBase* pPtCtrl,  INT tx /* = -1 */, INT ty /* = -1 */)
{
	PtCtrl_Zoom *pPtCtrl_Zoom = (PtCtrl_Zoom*)pPtCtrl;
	
	pPtCtrl_Zoom->m_opt_flag = PtCtrl_Zoom_Nothing;
	return 0;
}

INT PtCtrl_Zoom_OnDrawStyle(PtCtrlBase* pPtCtrl,  INT tx /* = -1 */, INT ty /* = -1 */)
{
	PtCtrlBase_OnDrawStyle(pPtCtrl,tx);
	PtCtrl_Zoom *pPtCtrl_Zoom = (PtCtrl_Zoom*)pPtCtrl;

	RECT rt;
	
	SetBkMode(pPtCtrl->m_pdc,TRANSPARENT);

	GetWindowRect(m_pt_app_info.m_pt_style_bn_hwnd[tx],&rt);

	SelectObject(pPtCtrl->m_pdc,GetStockObject(BLACK_PEN));

	TRACE(TEXT("Zoom_OnDrawStyle\n"));

	rt.right -= rt.left;
	rt.bottom -= rt.top;

	rt.left = 0;
	rt.top = 0;

    switch(tx)
	{
	case 0:
		if(pPtCtrl_Zoom->m_ptctrl_base.m_ctrl_style == tx)
			FillRect(pPtCtrl->m_pdc,&rt,HBRUSH(GetStockObject(GRAY_BRUSH)));
		DrawText(pPtCtrl->m_pdc,TEXT("1 x"),3,&rt,DT_CENTER);
		break;
		
	case 1:
		if(pPtCtrl_Zoom->m_ptctrl_base.m_ctrl_style == tx)
			FillRect(pPtCtrl->m_pdc,&rt,HBRUSH(GetStockObject(GRAY_BRUSH)));
		DrawText(pPtCtrl->m_pdc,TEXT("2 x"),3,&rt,DT_CENTER);
		break;
		
	case 2:
		if(pPtCtrl_Zoom->m_ptctrl_base.m_ctrl_style == tx)
			FillRect(pPtCtrl->m_pdc,&rt,HBRUSH(GetStockObject(GRAY_BRUSH)));
		DrawText(pPtCtrl->m_pdc,TEXT("4 x"),3,&rt,DT_CENTER);
		break;
	}
	

	return 0;
}

⌨️ 快捷键说明

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