📄 lakeymainwindow.h
字号:
#pragma once
#include <queue>
#include "EventManagerWin32.h"
#include "LakeySetting.h"
#include "LaWaveCapture.h"
class CSinSound;
class CLaButton;
class CLaJournalPanel;
class CLaWaveCapture;
class CLaLabel;
class CLaLine;
class CLakeyMainWindow
: public CEventDispatcherWin32
, public IMouseMoveEventListener
, public IKeyboardEventListener
, public IMouseKeyEventListener
, public IPaintEventControl
, public ICwEventListener
, public ICommandEventControl
{
public:
CLakeyMainWindow(HWND hWnd, CLakeySetting* pSetting);
virtual ~CLakeyMainWindow(void);
virtual BOOL Initialize();
virtual BOOL IsRelated(int x, int y) { return TRUE; };
virtual void GetRect(RECT* r);
virtual void OnMouseMove(void* owner, int x, int y);
virtual void OnKeyDown(void* owner, int nKeyCode);
virtual void OnKeyUp(void* owner, int nKeyCode);
virtual void OnMouseKeyDown(void* owner, MouseKeyType nMkt, int x, int y);
virtual void OnMouseKeyUp(void* owner, MouseKeyType nMkt, int x, int y);
virtual BOOL OnClick(void* owner);
virtual void OnPaint(void* owner, CGraphics* g, const RECT* pRect);
virtual void OnCwEvent(BOOL bCwDown);
virtual void OnCommand(void* owner, int nCommId);
void PushText(const char* pText, int nSize, int nWordLen);
void ClearQueue();
private:
CLaButton* CreateButton(const char* pText, int x, int y, int w, int h, int nWantKeyCode);
CLaButton* CreateButton(const BUTTONMAPPING* pMapping);
CLaJournalPanel* CreateJournalPanel(const RECT* pRect, int nMaxShortCount);
CLaWaveCapture* CreateWaveCapture(const RECT* pRect);
CLaLabel* CreateLabel(const RECT* pRect, const char* pText, int nStyle, const char* pMutexName = NULL);
CLaLine* CreateLine(int x1, int y1, int x2, int y2);
MORSECODE* GetMorseCode(char ch);
BOOL ChooseSendFile();
void BuildMorseButtons();
void CwDown();
void CwUp();
private:
CLakeySetting* m_pSetting;
CSinSound* m_pSound;
// Resources
CFont* m_pFont;
// Controls
CLaButton* m_pBtCw;
CLaButton* m_pBtSendPause;
CLaButton* m_pBtSendFile;
BOOL m_bPause;
BOOL m_bClear;
// Morse buttons
CLaButton* m_vBtMorse[MORSECODECOUNT];
// CW journal panel
CLaJournalPanel* m_pJpSend;
CLaLabel* m_pSendCharQueueLabel;
CLaLine* m_pSendJpBorder;
CLaLine* m_pSendTunerBorder;
CLaWaveCapture* m_pRecvDctMonitor;
CLaJournalPanel* m_pJpRecv;
CLaLine* m_pRecvJpBorder;
CLaLine* m_pRecvTunerBorder;
CLaLabel* m_pSendLabel;
CLaLabel* m_pRecvLabel;
// CW Flag
BOOL m_bCwFlag;
// Send morse queue
queue<MORSECODE *> m_oSendMorseQueue;
BOOL m_bNeedExit;
HANDLE m_hMorseQueueThread;
DWORD m_nMorseQueueThreadID;
HANDLE m_hMorseJournalThread;
DWORD m_nMorseJournalThreadID;
HANDLE m_hRecvMonitorThread;
DWORD m_nRecvMonitorThreadID;
int m_nRecvIdleCount;
static DWORD WINAPI MorseQueueThreadProc(LPVOID pOwner);
static DWORD WINAPI MorseJournalThreadProc(LPVOID pOwner);
static DWORD WINAPI RecvMonitorThreadProc(LPVOID pOwner);
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -