📄 floattooldlg.h
字号:
// FloatToolDlg.h : 头文件
//
/*
*
以后工作
1。UNICODE ok
2.移植到C++。net
3。移植到C#。net
4。资源国际化
5。增加位宽度
6。改进转换函数
7。优化代码,使规范化
*/
#pragma once
#ifndef __AFXWIN_H__
#include "afxwin.h"
#endif
#ifndef _INCLUDE_SDBG_ERROR_HPP_INCLUDE
#include "sdbg_error.hpp"
#endif
#ifndef _INCLUCDE_BIGINT_HPP_INCLUDE
#include "BigInt.hpp"
#endif
using namespace SLib;
#pragma pack(push)
//#ifndef _WIN32
#pragma pack(8)
typedef union __m64
{
UINT64 m64_u64;
float m64_f32[2];
__int8 m64_i8[8];
short int m64_i16[4];
int m64_i32[2];
INT64 m64_i64;
unsigned __int8 m64_u8[8];
unsigned short int m64_u16[4];
unsigned int m64_u32[2];
} __m64;
#pragma pack(16)
typedef struct __m128 {
float m128_f32[4];
} __m128;
typedef struct __m128d {
double m128d_f64[2];
} __m128d;
typedef union __m128i {
__int8 m128i_i8[16];
short int m128i_i16[8];
int m128i_i32[4];
INT64 m128i_i64[2];
unsigned __int8 m128i_u8[16];
unsigned short int m128i_u16[8];
unsigned int m128i_u32[4];
UINT64 m128i_u64[2];
} __m128i;
//#endif //_WIN32
typedef union m128
{
__m128i m128i;
__m128d m128d;
__m128 m128f;
__m64 m64[2];
}m128;
#pragma pack(pop)
//class CError : public SLib::CSError
//{
//
//public:
// CError();
// ~CError();
// virtual void OutputMsg(const tstring & msg)const ;
//};
// CFloatToolDlg 对话框
class CFloatToolDlg : public CDialog,public CSError
{
public:
enum { BIN =2, DEC = 10, HEX = 16, FLOAT, DOUBLE, LONG_DOUBLE};
enum { NO_SEPERATOR, SPACE_SEPERATOR, COMMA_SEPERATOR };
afx_msg void OnBnClickedFloat2();
afx_msg void OnBnClickedDec2();
afx_msg void OnBnClickedDouble2();
afx_msg void OnBnClickedLongDouble2();
afx_msg void OnBnClickedBin2();
afx_msg void OnBnClickedButton1();
afx_msg void OnBnClickedCancel();
afx_msg void OnBnClickedClearInput();
afx_msg void OnBnClickedQuit();
afx_msg void OnBnClickedNoSeperator();
afx_msg void OnBnClickedSpaceSeperator();
afx_msg void OnBnClickedCommaSeperator();
afx_msg void OnBnClickedSize2();
afx_msg void OnBnClickedSize4();
afx_msg void OnBnClickedSize6();
afx_msg void OnBnClickedSize8();
afx_msg void OnBnClickedSize10();
afx_msg void OnBnClickedSize16();
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnEnChangeInputStr();
afx_msg void OnBnClickedHex();
afx_msg void OnBnClickedFloat();
afx_msg void OnBnClickedDec();
afx_msg void OnBnClickedDouble();
afx_msg void OnBnClickedLongDouble();
afx_msg void OnBnClickedBin();
afx_msg void OnBnClickedHex2();
void OutputResult(tstring ostring);
void ClearFloatStr(void);
void SetInterFaceItem(void);
void EnableAllItem(void);
void Convert(void);
void GenOutput(void);
tstring GetInputStr(void);
virtual void OutputMsg(const tstring & msg)const ;
protected:
int m_Type;
int m_OutputType;
int m_Seperator;
float m_fInputVal;
double m_dInputVal;
long double m_ldInputVal;
int m_Size;
UINT64 m_hdbInputVal;
CStatic m_OutputLabel;
m128 m_m128;
CBigInt m_BigInt;
CEdit m_InputStr;
CEdit m_OutputStr;
CString m_BinHigh;
CString m_SignBit;
CString m_DecMantissa;
CString m_HexMantissa;
CString m_DecExponent;
CString m_HexExponent;
CString m_HideBit;
CString m_2Exponent;
CString m_2Mantissa;
tstring Filter(const tstring& s);
BOOL GetInput(tstring in);
// 构造
public:
CFloatToolDlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
enum { IDD = IDD_FLOATTOOL_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
HCURSOR OnQueryDragIcon();
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR O2nQueryDragIcon();
DECLARE_MESSAGE_MAP()
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -