📄 ptctrlbase.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 + -