📄 guiwarnbox.h
字号:
/**********************************************
警告信息模态对话框类
**********************************************/
#pragma once
#include "GUI.h"
// 模态警告框
#define WRAN_BTN_COUNT 11 //总共11个按钮
enum WARNBOXBTNID
{
WBTN_ID_NULL = 0, //空白
WBTN_ID_OK = 1, //确认
WBTN_ID_CANCEL = 2, //取消
WBTN_ID_YES = 3, //是
WBTN_ID_NO = 4, //否
WBTN_ID_ABORT = 5, //中断
WBTN_ID_RETRY = 6, //重试
WBTN_ID_IGNORE = 7, //忽略
WBTN_ID_QUIT = 8, //退出
WBTN_ID_LEAVE = 9, //离开
WBTN_ID_CLOSE = 10 //关闭
};
///模态警告框状态
#define WBS_OK 0x0001 //(确认)
#define WBS_OKCANCEL 0x0002 //(确认|取消)
#define WBS_YESNO 0x0003 //(是|否)
#define WBS_YESNOCANCEL 0x0004 //(是|否|取消)
#define WBS_ABORTRETRYIGNORE 0x0005 //(中断|重试|忽略)
#define WBS_QUIT 0x0006 //(退出|取消)
#define WBS_LEAVE 0x0007 //(离开|取消)
#define WBS_CLOSE 0x0008 //(关闭|取消)
#define WRAN_FRAME_COUNT 10 //框架共10部分
enum WARNBOXFRAME
{
WBF_TITLE_L = 0, //标题左
WBF_TITLE_M = 1, //标题中
WBF_TITLE_R = 2, //标题右
WBF_TITLE_INFO = 3, //标题信息
WBF_BODY_L = 4, //正文左
WBF_BODY_M = 5, //正文中
WBF_BODY_R = 6, //正文右
WBF_BOTTOM_L = 7, //底部左
WBF_BOTTOM_M = 8, //底部中
WBF_BOTTOM_R = 9, //底部右
};
#define DEFAULT_BODY_WIDTH 200
#define DEFAULT_BODY_HEIGHT 100
/// 注意
/// 模态对话框如果设置捕获对象,则把消息结果消息发送到捕获对象的OnMessage()
/// 如果未设置捕获对象,则把消息结果发送到模态对话框的父对象的OnMessage()
class GUIWarnBox :
public GUI
{
public:
GUIWarnBox(void);
~GUIWarnBox(void);
protected:
char m_szWarnMsg[1024];
bool m_bMouseLButtonDown;
GUIPoint m_ptMouseOffPos;
float m_BtnWidth;
float m_BtnHeight;
float m_BorderWidth;
float m_BorderHeight;
float m_FontWidth;
float m_FontHeight;
class GUIButton* m_pWarnBoxClose;
class GUIButton* m_pWarnBoxButton[WRAN_BTN_COUNT];
class GUI* m_pWarnBoxFrame[WRAN_FRAME_COUNT];
//接受模态对话框消息的对象
class GUI* m_pCaptureWarnObject;
class GUI* m_pLastEditFocus;
public:
bool CreateGUIWarnBox(char* lpszName,GUI* pParent);
bool MessageBox(char* msg,GUI* pCaptureObject = NULL,DWORD dwType = WBS_OK);
protected:
void DrawFrame(float framew,float frameh);
void ShowAllButton(bool bShow);
void DrawButton(DWORD dwType);
private:
float GetStringLineCount(char *str); ///获得字符串的行数
float GetStringMaxLength(char *str); ///获得最大字符串的长度
public:
virtual void Render(); ///绘制
virtual void OnChildMessage(GUI* pChildGUI,UINT iMsg, WPARAM wParam, LPARAM lParam);///子对象发送了命令请求
virtual int OnMouseLButton(float x,float y,bool down); ///左键按下松开(在区域内)
virtual void Updata(float dt); ///立即更新
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -