86 lines
2.9 KiB
C++
86 lines
2.9 KiB
C++
#pragma once
|
|
#include "Resource.h"
|
|
#include "LangManager.h"
|
|
#include "CIconButton.h"
|
|
|
|
class CScreenSpyDlg;
|
|
|
|
class CToolbarDlg : public CDialogLangEx
|
|
{
|
|
DECLARE_DYNAMIC(CToolbarDlg)
|
|
private:
|
|
int m_lastY = 0; // 记录上一次的 Y 坐标
|
|
|
|
public:
|
|
CScreenSpyDlg* m_pParent = nullptr;
|
|
CToolbarDlg(CScreenSpyDlg* pParent = nullptr);
|
|
virtual ~CToolbarDlg();
|
|
|
|
enum { IDD = IDD_TOOLBAR_DLG };
|
|
|
|
int m_nHeight = 40;
|
|
bool m_bVisible = false;
|
|
bool m_bLocked = false; // 是否锁定工具栏
|
|
int m_nPosition = 0; // 工具栏位置 (0=上, 1=下, 2=左, 3=右)
|
|
int m_nOpacityLevel = 0; // 透明度级别 (0=100%, 1=75%, 2=50%)
|
|
|
|
// Icon buttons
|
|
CIconButton m_btnExit;
|
|
CIconButton m_btnControl;
|
|
CIconButton m_btnLock;
|
|
CIconButton m_btnPosition;
|
|
CIconButton m_btnOpacity;
|
|
CIconButton m_btnSwitchScreen;
|
|
CIconButton m_btnBlockInput;
|
|
CIconButton m_btnStatusInfo;
|
|
CIconButton m_btnQuality;
|
|
CIconButton m_btnRestoreConsole;
|
|
CIconButton m_btnX; // 切换窗口按钮
|
|
CIconButton m_btnY; // 预留按钮 Y
|
|
CIconButton m_btnZ; // 预留按钮 Z
|
|
CIconButton m_btnScreenshot;
|
|
CIconButton m_btnMinimize;
|
|
CIconButton m_btnClose;
|
|
|
|
bool m_bBlockInput = false; // 远程输入锁定状态
|
|
bool m_bShowStatusInfo = true; // 状态信息窗口显示状态
|
|
|
|
CToolTipCtrl m_tooltip;
|
|
|
|
void SlideIn();
|
|
void SlideOut();
|
|
void CheckMousePosition();
|
|
void UpdatePosition(); // 更新工具栏位置
|
|
void LayoutButtons(); // 重新排列按钮布局
|
|
void LoadSettings(); // 从注册表加载设置
|
|
void SaveSettings(); // 保存设置到注册表
|
|
void ApplyOpacity(); // 应用透明度
|
|
void UpdateButtonIcons(); // 更新状态相关按钮的图标和提示文本
|
|
RECT GetParentMonitorRect(); // 获取父窗口所在显示器的矩形区域
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
public:
|
|
afx_msg void OnBnClickedExitFullscreen();
|
|
afx_msg void OnBnClickedCtrl();
|
|
afx_msg void OnBnClickedMinimize();
|
|
afx_msg void OnBnClickedClose();
|
|
afx_msg void OnBnClickedLock();
|
|
afx_msg void OnBnClickedPosition();
|
|
afx_msg void OnBnClickedOpacity();
|
|
afx_msg void OnBnClickedSwitchScreen();
|
|
afx_msg void OnBnClickedBlockInput();
|
|
afx_msg void OnBnClickedStatusInfo();
|
|
afx_msg void OnBnClickedQuality();
|
|
afx_msg void OnBnClickedRestoreConsole();
|
|
afx_msg void OnBnClickedX(); // 切换窗口响应函数
|
|
afx_msg void OnBnClickedY(); // 预留按钮 Y 响应函数
|
|
afx_msg void OnBnClickedZ(); // 预留按钮 Z 响应函数
|
|
afx_msg void OnBnClickedScreenshot();
|
|
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
|
virtual BOOL OnInitDialog();
|
|
};
|