📄 win.h
字号:
#pragma once
/*
** Callback protoype used by my
*/
typedef bool (*myCallback)();
typedef bool (*myRenderFunc)(HDC);
enum myFuncState
{
my_FRAMEFUNC = 8, // bool*() frame function (default: NULL) (you MUST set this)
my_RENDERFUNC = 9, // bool*() render function (default: NULL)
my_FREEFUNC = 10, // bool*() free function (default: NULL)
};
class KWindow
{
protected:
// System States
bool (*procFrameFunc)();
bool (*procRenderFunc)(HDC);
bool (*procFreeFunc)();
int m_iFrameDelay; //FPS
int m_iWidth, m_iHeight;
HDC m_hOffscreenDC;
HBITMAP m_hOffscreenBitmap;
virtual void System_SetStateFunc(myFuncState state, myCallback value);
virtual void OnDraw(HDC hDC)
{
}
virtual void OnKeyDown(WPARAM wParam, LPARAM lParam)
{
}
virtual LRESULT WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
virtual void GetWndClassEx(WNDCLASSEX & wc);
static LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
HRESULT CommonMDIChildProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam,
HMENU hMenu, int nWindowMenu);
HPALETTE m_hPalette;
int m_nUpdateCount;
virtual LRESULT OnQueryNewPalette(void);
virtual LRESULT OnPaletteChanged(HWND hWnd, WPARAM wParam);
bool m_bMainWindow;
public:
inline void System_SetState(myFuncState state, myCallback value) { System_SetStateFunc (state, value); }
HWND m_hWnd;
KWindow(void)
{
m_hWnd = NULL;
m_hPalette = NULL;
m_nUpdateCount = 0;
m_iFrameDelay =20;
procFrameFunc = NULL;
procRenderFunc = NULL;
procFreeFunc = NULL;
m_bMainWindow = false;
}
virtual ~KWindow(void)
{
DeleteObject(m_hOffscreenBitmap);
DeleteDC(m_hOffscreenDC);
if ( m_hPalette )
{
DeleteObject(m_hPalette);
m_hPalette = NULL;
}
}
virtual bool CreateEx(DWORD dwExStyle, LPCTSTR lpszClass, LPCTSTR lpszName, DWORD dwStyle,
int nWidth, int nHeight, HWND hParent, HMENU hMenu, HINSTANCE hInst);
bool RegisterClass(LPCTSTR lpszClass, HINSTANCE hInst);
virtual WPARAM MessageLoop(void);
BOOL ShowWindow(int nCmdShow) const
{
return ::ShowWindow(m_hWnd, nCmdShow);
}
BOOL UpdateWindow(void) const
{
return ::UpdateWindow(m_hWnd);
}
};
int MyMessageBox(HWND hWnd, const TCHAR * text, const TCHAR * caption, DWORD style, int iconid);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -