📄 canvas.h
字号:
#pragma once
#include "ShortcutManager.h"
#include "winimage.h"
#include "MonitorVisible.h"
#define CANVAS_ROW 3
#define CANVAS_LINE 3
class CCanvas:public CStatic,CMonitorVisible
{
CString m_sBkBmpPath;
CRITICAL_SECTION m_CriticalSection;
HBITMAP m_hDefaultBitmap;
std::vector<HBITMAP> m_arrVisibleBmp;
RECT m_arrItemRect[CANVAS_LINE][CANVAS_ROW];
CRect m_rcCanvas;
CShortcutManager* m_smCurrent;
std::vector<CShortcutManager*> m_vecSM;
void DrawTransParent(HBITMAP hBmp,int const x,int const y,int const cx,int const cy,
int const srcx,int const srcy,CDC *pDC,COLORREF TransparentColor);
void DrawShortcutItem(CDC& dc);
void DrawGif();
CDC* m_pMemDC;
void SetCurrentMan(CShortcutManager* pMan);
public:
CCanvas(void);
~CCanvas(void);
DECLARE_MESSAGE_MAP()
afx_msg void OnPaint();
protected:
C_ImageSet m_AnimGif;
HANDLE m_hThreadAnim; // Thread Handle
DWORD m_dwThreadIdAnim; // Thread Identifier
public:
C_ImageSet * m_pAnimation; // Pointer to Animation Raster Information
int m_CurrentImage; // Current Image being displayed
int m_CurrentLoop; // Current Loop in animation
BOOL m_bAnimationPlaying; // TRUE when animation is playing.
// CLASS FUNCTIONS: (not object functions!)
static DWORD WINAPI fnThread (LPVOID lpParameter);
// Animation control:
void Play(); // Starts/Resumes animation
void Stop(); // Stops(Pauses) animation (without rewinding)
void Rewind(); // Rewinds animation (without stopping)
BOOL IsPlaying();
int LoadAnimatedGif(LPTSTR FileName);
void SetCanvasRect(CRect& rc);
BOOL Init(LPCTSTR lpszPath);
BOOL Initialize(CRect& rc,LPCTSTR lpszPath);
void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
void CCanvas::EnterCriticalSec();
void CCanvas::LeaveCriticalSec();
void OnOk();
void OnCancel();
void OnNotifyChange(int iOldSel,int iOldSelTotal,int iCurrentSize,int iIsAddToBack = 0,int iAdded = 0,int iRemoved = 0);
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -