Noticias:

SMF - Just Installed!

Menú principal

Takumi12 - TextInputBox

Publicado por Dakosmu, Feb 23, 2023, 08:14 AM

Tema anterior - Siguiente tema

Dakosmu

INFORMACION
Takumi12 - TextInputBox


UITextInputBox.h:

#pragma once
#define UIOPTION_NUMBERONLY 9
#define UIOPTION_PAINTBACK 8
#define newClass ((int(__cdecl*)(int Type)) 0x009D00C5)
#define new_CUITextInputBox ((DWORD* (__thiscall*)(DWORD* thisa)) 0x00420F60)
#define CUITextInputBox_Init ((void (__thiscall*)(DWORD* thisa, HWND hWnd, int iWidth, int iHeight, int iMaxLength, BOOL bIsPassword)) 0x00421B90)
#define CUITextInputBox_SetState ((void (__thiscall*)(DWORD* thisa, int type)) 0x00421D30)
#define CUITextInputBox_GiveFocus ((void (__thiscall*)(DWORD* thisa, BOOL bSel)) 0x00421D80)
#define CUITextInputBox_SetText ((void (__thiscall*)(DWORD* thisa, const char* pszText)) 0x00421830)
#define CUITextInputBox_Render ((void (__thiscall*)(DWORD* thisa)) 0x00422320)
#define CUITextInputBox_SetFont ((void (__thiscall*)(DWORD* thisa, HFONT hFont)) 0x00423060)
#define CUITextInputBox_GetText ((void (__thiscall*)(DWORD* thisa, char * pszText, int iGetLenght)) 0x004217D0)
#define CUITextInputBox_SetOption ((void (__thiscall*)(DWORD* thisa, int iOption)) 0x004050F0)
#define CUITextInputBox_DoAction ((BOOL (__thiscall*)(DWORD* thisa, BOOL bMessageOnly)) 0x00417F90)
#define CUITextInputBox_GetPosition_x ((int (__thiscall*)(DWORD* This)) 0x0042D170)
#define CUITextInputBox_GetPosition_y ((int (__thiscall*)(DWORD* This)) 0x0042D190)
#define CUITextInputBox_GetWidth ((int (__thiscall*)(DWORD* This)) 0x0042DC90)
#define CUITextInputBox_GetHeight ((int (__thiscall*)(DWORD* This)) 0x00477A10)

enum UISTATES
{
UISTATE_NORMAL = 0,
UISTATE_RESIZE,
UISTATE_SCROLL,
UISTATE_HIDE,
UISTATE_MOVE,
UISTATE_READY,
UISTATE_DISABLE
};

class CUITextInputBox
{
public:
CUITextInputBox();
virtual ~CUITextInputBox();
void Init();
//--
void Render();
DWORD* GetInput();
const POINT& GetPos();
const SIZE& GetSize();
bool CheckMouseTarget();
//--
void ChangeEditBox(int type);
void SetPosition(int x, int y);
void SetTextColor(BYTE a, BYTE r, BYTE g, BYTE b);
void SetBackColor(BYTE a, BYTE r, BYTE g, BYTE b);
void SetSelectBackColor(BYTE a, BYTE r, BYTE g, BYTE b);
void GetText(char* pszText, int iGetLenght = 255);
void ClearTexts();

void SetFont(HFONT hFont);
void SetState(int iState);
void SetOption(int iOption);
void GiveFocus(BOOL bSel = FALSE);
void SetTabTarget(CUITextInputBox * pTabTarget);
void Init(HWND hWnd, int iWidth, int iHeight, int iMaxLength = 50, BOOL bIsPassword = FALSE);
BOOL DoAction(BOOL bMessageOnly = FALSE);

DWORD* m_InputBox;
int GetPosition_x();
int GetPosition_y();
int GetWidth();
int GetHeight();

private:
POINT       m_Pos;
SIZE        m_Size;
};

extern CUITextInputBox * m_PoinBox;









UITextInputBox.cpp:

#include "StdAfx.h"
#include "Util.h"
//#include "SEASON3B.h"
#include "UITextInputBox.h"

CUITextInputBox * m_PoinBox;

CUITextInputBox::CUITextInputBox()
{
this->m_InputBox = NULL;
this->Init();
}

CUITextInputBox::~CUITextInputBox()
{
}

void CUITextInputBox::Init()
{
m_InputBox = new_CUITextInputBox((DWORD*)newClass(0xE0u));
}

void CUITextInputBox::SetFont(HFONT hFont)
{
CUITextInputBox_SetFont(this->m_InputBox, hFont);
}

void CUITextInputBox::SetState(int iState)
{
CUITextInputBox_SetState(this->m_InputBox, iState);
}

void CUITextInputBox::SetOption(int iOption)
{
CUITextInputBox_SetOption(this->m_InputBox, iOption);
}

void CUITextInputBox::GiveFocus(BOOL bSel)
{
CUITextInputBox_GiveFocus(this->m_InputBox, bSel);
}

void CUITextInputBox::Init(HWND hWnd, int iWidth, int iHeight, int iMaxLength, BOOL bIsPassword)
{
this->m_Size.cx = iWidth;
this->m_Size.cy = iHeight;
CUITextInputBox_Init(this->m_InputBox, hWnd, iWidth, iHeight, iMaxLength, bIsPassword);
}

void CUITextInputBox::ClearTexts()
{
(*(void (__thiscall **)(int, DWORD))(*(DWORD *)(int)this->m_InputBox + 76))((int)this->m_InputBox, 0);
}

void CUITextInputBox::GetText(char* pszText, int iGetLenght)
{
CUITextInputBox_GetText(this->m_InputBox, pszText, iGetLenght);
}

void CUITextInputBox::ChangeEditBox(int type)
{
CUITextInputBox_SetState(m_InputBox, type);
if ( type == UISTATE_NORMAL ) {CUITextInputBox_GiveFocus(m_InputBox, 0);}
}

void CUITextInputBox::SetTextColor(BYTE a, BYTE r, BYTE g, BYTE b)
{
(*(void (__thiscall **)(int, BYTE, BYTE, BYTE, BYTE))(*(DWORD *)(int)this->m_InputBox + 64))((int)this->m_InputBox, a, r, g, b);

}

void CUITextInputBox::SetBackColor(BYTE a, BYTE r, BYTE g, BYTE b)
{
(*(void (__thiscall **)(int, BYTE, BYTE, BYTE, BYTE))(*(DWORD *)(int)this->m_InputBox + 68))((int)this->m_InputBox, a, r, g, b);
}

void CUITextInputBox::SetSelectBackColor(BYTE a, BYTE r, BYTE g, BYTE b)
{
(*(void (__thiscall **)(int, BYTE, BYTE, BYTE, BYTE))(*(DWORD *)(int)this->m_InputBox + 72))((int)this->m_InputBox, 255, 255, 189, 25);
}

void CUITextInputBox::SetPosition(int x, int y)
{
this->m_Pos.x = x;
this->m_Pos.y = y;
((int(__thiscall*)(int, int, int)) 0x00417EC0)((int)this->m_InputBox, x, y);
}

const POINT& CUITextInputBox::GetPos()
{
return this->m_Pos;
}

const SIZE& CUITextInputBox::GetSize()
{
return this->m_Size;
}

bool CUITextInputBox::CheckMouseTarget()
{
return ((bool(__cdecl*)(int, int, int, int)) 0x00790B10)(
GetPos().x, GetPos().y, GetSize().cx, GetSize().cy);
}

void CUITextInputBox::Render()

{
((void (__thiscall*)(DWORD*)) 0x00422320)(this->m_InputBox);
}

DWORD* CUITextInputBox::GetInput()
{
return this->m_InputBox;
}

void CUITextInputBox::SetTabTarget(CUITextInputBox * pTabTarget)
{
(*(int (__thiscall **)(int, int))(*(DWORD *)(int)this->m_InputBox + 88))((int)this->m_InputBox, (int)pTabTarget->GetInput());
}

BOOL CUITextInputBox::DoAction(BOOL bMessageOnly)
{
return CUITextInputBox_DoAction(this->m_InputBox, bMessageOnly);
}

int CUITextInputBox::GetPosition_x()
{
return CUITextInputBox_GetPosition_x(m_InputBox);
}

int CUITextInputBox::GetPosition_y()
{
return CUITextInputBox_GetPosition_y(m_InputBox);
}

int CUITextInputBox::GetWidth()
{
return CUITextInputBox_GetWidth(m_InputBox);
}

int CUITextInputBox::GetHeight()
{
return CUITextInputBox_GetHeight(m_InputBox);
}


Ejemplo:

CUITextInputBox* m_EditBox = new CUITextInputBox;
m_EditBox->Init(g_hWnd, 70, 15, 10);
m_EditBox->SetBackColor(255, 0, 0, 0);
m_EditBox->SetTextColor(255, 255, 230, 210);
m_EditBox->SetFont(g_hFont);
m_EditBox->SetState(UISTATE_NORMAL);
m_EditBox->SetOption(UIOPTION_NUMBERONLY);
m_EditBox->SetPosition(Window_x + 60, Window_y + 100);



CREDITOS
@takumi12
Bon Dia

🡱 🡳