D3D Menu

Posts 1–3 of 3 · Page 1 of 1
D3D Menu
Here is a source code for a universal menu that i found on a different forum. Note: I did not make this! I found it while trying to learn myself.
But anyway i thought you guys might find it useful
Code:
HRESULT WINAPI nBeginScene(LPDIRECT3DDEVICE9 pDevice)
{
_asm NOP;
HRESULT hRet = pBeginScene(pDevice);

if(!CarregaFonte) { 
CarregaFonte=true; 

D3DXCreateFont( pDevice, 14, 0, FW_NORMAL, 0, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Microsoft Sans Serif", &Fonte[0]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 0, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Tahoma", &Fonte[1]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 0, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[2]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial", &Fonte[3]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Comic Sans MS", &Fonte[4]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Courier New", &Fonte[5]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Georgia", &Fonte[6]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Impact", &Fonte[7]);
D3DXCreateFont( pDevice, 12, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Lucida Console", &Fonte[8]);
D3DXCreateFont( pDevice, 14, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Verdana", &Fonte[9]);
D3DXCreateFont( pDevice, 8, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman", &Fonte[10]);
D3DXCreateFont( pDevice, 38, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial", &Fonte[11]);
D3DXCreateFont( pDevice, 16, 0, FW_BOLD, 1, FALSE,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial", &Fonte[12]);

}




BaseJanela.BaseX = 10;
BaseJanela.BaseY = 150;
BaseJanela.BaseW = 150;
BaseJanela.BaseH = (30 * MENU_ITEM_MAX);



if(GetAsyncKeyState(VK_HOME)&1)
{
BaseJanela.Mostrar = !BaseJanela.Mostrar;
}

if(BaseJanela.Mostrar)
{

if(GetAsyncKeyState(VK_LEFT)&1)
{
setadireita = true;
}
else 
setadireita = false;

if(GetAsyncKeyState(VK_RIGHT)&1)
{
setaesquerda = true;
}
else 
setaesquerda = false;


MenuEspaco = BaseJanela.BaseH / MENU_ITEM_MAX;


if(GetAsyncKeyState(VK_DOWN)&1){MenuSelecionado +=1;}
if(GetAsyncKeyState(VK_UP)&1){MenuSelecionado -=1;}

if(setadireita && MenuSelecionado == 1){Item1 -=1;}
if(setaesquerda && MenuSelecionado == 1){Item1 +=1;}

if(setadireita && MenuSelecionado == 2){Item2 -=1;}
if(setaesquerda && MenuSelecionado == 2){Item2 +=1;}

if(setadireita && MenuSelecionado == 3){Item3 -=1;}
if(setaesquerda && MenuSelecionado == 3){Item3 +=1;}

if(setadireita && MenuSelecionado == 4){Item4 -=1;}
if(setaesquerda && MenuSelecionado == 4){Item4 +=1;}


if(setadireita && MenuSelecionado == 5){Item5 -=1;}
if(setaesquerda && MenuSelecionado == 5){Item5 +=1;}

if(setadireita && MenuSelecionado == 6){Item6 -=1;}
if(setaesquerda && MenuSelecionado == 6){Item6 +=1;}

if(setadireita && MenuSelecionado == 7){Item7 -=1;}
if(setaesquerda && MenuSelecionado == 7){Item7 +=1;}


if(MenuSelecionado > MENU_ITEM_MAX){MenuSelecionado = MENU_ITEM_MIN;}
if(MenuSelecionado < MENU_ITEM_MIN){MenuSelecionado = MENU_ITEM_MAX;}

if(Item1 > ITEM1_MAX)
Item1 = ITEM1_MIN;
if(Item1 < ITEM1_MIN)
Item1 = ITEM1_MAX;

if(Item2 > ITEM2_MAX)
Item2 = ITEM2_MIN;
if(Item2 < ITEM2_MIN)
Item2 = ITEM2_MAX;

if(Item3 > ITEM3_MAX)
Item3 = ITEM3_MIN;
if(Item3 < ITEM3_MIN)
Item3 = ITEM3_MAX;

if(Item4 > ITEM4_MAX)
Item4 = ITEM4_MIN;
if(Item4 < ITEM4_MIN)
Item4 = ITEM4_MAX;

if(Item5 > ITEM5_MAX)
Item5 = ITEM5_MIN;
if(Item5 < ITEM5_MIN)
Item5 = ITEM5_MAX;

if(Item6 > ITEM6_MAX)
Item6 = ITEM6_MIN;
if(Item6 < ITEM6_MIN)
Item6 = ITEM6_MAX;

if(Item7 > ITEM7_MAX)
Item7 = ITEM7_MIN;
if(Item7 < ITEM7_MIN)
Item7 = ITEM7_MAX;

Menu(pDevice,"Menu Universal ",BaseJanela.BaseX,BaseJanela.BaseY-50,210,300,0x44FFFFFF,0x44FFFFFF,0xFF848484,"V0.5" );

Botao(pDevice,BaseJanela.BaseX + 8,BaseJanela.BaseY-MenuEspaco + (MenuSelecionado * MenuEspaco) ,4,20,0xFF2E2E2E,0xFF2E2E2E,0xFFFF0000,"");

Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 0),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Names ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 1),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Distan ce ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 2),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Heath ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 3),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Object s ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 4),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Weapon ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 5),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Box ESP");
Botao(pDevice,BaseJanela.BaseX +15,BaseJanela.BaseY+ (MenuEspaco * 6),175,20,0xFF2E2E2E,0xFF2E2E2E,0xFF848484,"Barrel ESP");

GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 0) , 0xFFFF9900, Fonte[12],"%d", Item1);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 1) , 0xFFFF9900, Fonte[12],"%d", Item2);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 2) , 0xFFFF9900, Fonte[12],"%d", Item3);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 3) , 0xFFFF9900, Fonte[12],"%d", Item4);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 4) , 0xFFFF9900, Fonte[12],"%d", Item5);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 5) , 0xFFFF9900, Fonte[12],"%d", Item6);
GravaTexto(BaseJanela.BaseX +(BaseJanela.BaseW+30) ,BaseJanela.BaseY+ (MenuEspaco * 6) , 0xFFFF9900, Fonte[12],"%d", Item7);

}



if(Item1==1)
//ON
if(Item1==0)
//OFF


//#define ITEM2_MAX 1 add ++

//if(Item==2) etc.....



return hRet;
}
Code:
#include "stdafx.h"
#include <d3dx9.h>
#include <vector>

#pragma comment(lib,"d3dx9.lib")

ID3DXFont * Fonte[13];
ID3DXFont * fonte;

int MenuSelecionado = 1;

bool setadireita;
bool setaesquerda;

#define MENU_ITEM_MAX 7
#define MENU_ITEM_MIN 1

#define ITEM1_MAX 1
#define ITEM1_MIN 0

#define ITEM2_MAX 1
#define ITEM2_MIN 0

#define ITEM3_MAX 1
#define ITEM3_MIN 0

#define ITEM4_MAX 1
#define ITEM4_MIN 0

#define ITEM5_MAX 1
#define ITEM5_MIN 0

#define ITEM6_MAX 1
#define ITEM6_MIN 0

#define ITEM7_MAX 1
#define ITEM7_MIN 0

int Item1 = 0;
int Item2 = 0;
int Item3 = 0;
int Item4 = 0;
int Item5 = 0;
int Item6 = 0;
int Item7 = 0;


struct Janela{
int BaseX;
int BaseY;
int BaseW;
int BaseH;
bool Mostrar;
} BaseJanela;

int MenuEspaco = 25;


void GravaTexto(int X, int Y, D3DCOLOR Cor, ID3DXFont *fonte, const char* sNome,...) 
{ 
char sTexto[1024] = "";
va_list ap;

if( !sNome || *sNome == '\0' )
return;

va_start( ap, sNome );
_vsnprintf_s( sTexto, 1024, 1023, sNome, ap );
va_end( ap );

RECT Posicao = { X, Y, X+500, Y+50 }; 
fonte->DrawText( NULL, sTexto, -1, &Posicao, DT_LEFT | DT_WORDBREAK, Cor); 
}

void DrawRect(IDirect3DDevice9* Unidade, int baseX, int baseY, int baseW, int baseH, D3DCOLOR Cor)
{
D3DRECT BarRect = { baseX, baseY, baseX + baseW, baseY + baseH }; 
Unidade->Clear(1, &BarRect, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, Cor, 0, 0); 
}


void Base(IDirect3DDevice9* Unidade,int baseX, int baseY, int baseW, int baseH, D3DCOLOR Cor, D3DCOLOR Cor1, D3DCOLOR Cor2)
{
DrawRect(Unidade,baseX+1, baseY+1, baseW+1, baseH+1, Cor); 
DrawRect(Unidade,baseX, baseY-1, baseW+1 , baseH, Cor1);
DrawRect(Unidade,baseX+1, baseY, baseW , baseH , Cor2);
}

void Menu(IDirect3DDevice9* Unidade,char *sTitulo, int baseX, int baseY, int baseW, int baseH, D3DCOLOR Cor, D3DCOLOR Cor1, D3DCOLOR Cor2,const char* sVersao,...)
{
DrawRect(Unidade,baseX+1, baseY+1, baseW+1, baseH+1, Cor); 
DrawRect(Unidade,baseX, baseY-1, baseW+1 , baseH, Cor1);
DrawRect(Unidade,baseX+1, baseY, baseW , baseH , Cor2);
GravaTexto(baseX +5 ,baseY + 2 , 0x77FFFFFF, Fonte[12], sTitulo);
GravaTexto(baseX +5 ,baseY + baseH - 20 , 0x55FFFFFF, Fonte[12], sVersao);
Base(Unidade,baseX+5,baseY+30,baseW-10,baseH-60,0x44FFFFFF,0x44FFFFFF,0xFF2E2E2E);
}

void Botao(IDirect3DDevice9* Unidade,int baseX, int baseY, int baseW, int baseH, D3DCOLOR Cor, D3DCOLOR Cor1, D3DCOLOR Cor2,const char* sNome,...)
{
DrawRect(Unidade, baseX+1, baseY+1, baseW+1, baseH+1, Cor); 
DrawRect(Unidade, baseX, baseY-1, baseW+1 , baseH, Cor1);
DrawRect(Unidade, baseX+1, baseY, baseW , baseH , Cor2);
GravaTexto(baseX + 10, baseY + 4, 0xFFFFFF00, Fonte[12], sNome);
}
[img]http://www.********.com/forum/attachments/tutorials-and-source/9508d1255172081-universal-menu-dx9-iw3mp-2009-10-10-07-57-17-00.jpg[/img]

Hope this helps you guys, i know it came of some use to me
MenuBase.zipattachment deleted · 100 downloads before removal
Maybe Why might find this useful, cause he's always on about stuff I don't understand on MSN.
Well I already have quite a few examples to look at, but one more never hurt... ;P

Go to sleep crushed xD
Posts 1–3 of 3 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us