Showing posts with label GUI. Show all posts
Showing posts with label GUI. Show all posts

Monday, April 14, 2014

NFS : Most Wanted Money Hack / Trainer / Cheat + C++ Source Code!

Hey!
Just letting you all know that I have recently released a trainer / hack for Need for Speed : Most Wanted that allows you to hack your money up to $999,999,999...

The C++ Source Code is included aswell...

You can check it here : https://www.youtube.com/watch?v=6thoAaxqC5s

Monday, February 24, 2014

[C++ TUT] Win32 (GUI) Programming - Add and Program a Button

Hey guys!
This is the 2nd part of my Win32 Programming tutorial...

Today I will be teaching you on how to add a button to your program and code what it does!

Well my button will just be checking if the 'window' Computer (aka My Computer) is opened or not...

So first off what is a button?

Normally defined as 'In computing, a button (sometimes known as a command button or push button) is a user interface element that provides the user a simple way to trigger an event' Source: wikipedia...

A button is actually a Window! but you change the window class to the class BUTTON...
If you notice per example on avast .. it has a different GUI...

Example :


That´s because in C++ you can design your own stuff! You don´t need to be stuck with default windows stuff... YOU HAVE DIRECT3D!!!! ANYWAYS in these tutorials we will be learning the Win32 'lib'!

One day later I will make tutorial on how to create your own personal designed UI´s and then Game stuff..

Now let´s stick up to the tutorial...

So yeah creating a button is creating a window with a different class type...

The parameters of a button are : 

DWORD dwExStyle -> usually in a button we set this as NULL so we wont go through this here...

LPCWSTR lpClassName -> this is the class name.. for a button is BUTTON... per example for textBox is EDIT... get it??

LPCWSTR lpWindowName -> this is the window name.. in this case the text displayed on the button

DWORD dwStyle -> in a button you will always need WS_VISIBLE | BS_DEFPUSHBUTTON... these are the style properties.. there are ALOT you can use..

int x -> this is the spot in the x cartesian where the button will stay

int y -> this is the spot in the y cartesian where the button will stay

int nWidth -> the width of the button (adjust as for how many text you have...)

int nHeight -> the height of the button (usually 30)

HWND hWndParent -> usually setted as our main window hwnd cuz the button will be a child of the window!

HMENU hMenu -> this is what will use the buttonID as..

the rest is null....

So let´s start!!!

First off you want to go to the top of your code and add a Define..

this will define your button... each control in your program (button , textBoxes...) needs to have their own ID!

so per example 

#define BUTTON_01    1

ok... if you were to make another button(or textbox) you could do #define BUTTON_02 2 or #define TEXTBOX_01 2...
Ok?

now that you have your button ID´ied you want to go into our handle class (LRESULT CALLBACK WndProc) and add another case called WM_CREATE:...

like this 

case WM_CREATE:
{
 /*Button01*/
 /*Button01-End*/
}
break;

as you can see we already created a spot for our button! :)

that is where you will put any element that is added onto the program...

Ok...

So now in our Button01 area inside our new case we want to define some stuff...

our button class
our button text
and our button itself!

  LPCWSTR button01_ID = L"BUTTON";
 LPCWSTR button01_text = L"Verify";
 HWND button01 = CreateWindowEx(NULL, button01_ID, button01_text, BS_DEFPUSHBUTTON | WS_VISIBLE | WS_BORDER | WS_CHILD, 100, 50, 70, 30, hwnd, (HMENU)BUTTON_01, NULL, NULL);

In Here we used button01_ID as button01_class...


We have already filled up our code to create the window.. just match it up with the params I gave above....

So now you have a button!

Now let´s code what the button does...

You want to add a new case called WM_COMMAND:

like this 

case WM_COMMAND:
{
  switch (wParam)
  {
  }
}
break;

and as you already understood, we created a switch for our wParam...

ok!

inside the switch  you want to add a case for the buttonID!  (defined on top of the code)

  case BUTTON_01:
   
  break;

anything inside that case willl be what the BUTTON_01 does!

go onto the top of you code and create a void.. my button will just be checking if the dialog My Computer is opened.. so..

void checkIfComputerIsOpened()
{
LPCWSTR Computer = L"Computador";
HWND computer = FindWindow(NULL, Computer);

if (computer == NULL)
{
LPCWSTR ComputerError = L"Computer is not opened!";
LPCWSTR ComputerError_Caption = L"Error";
MessageBox(NULL, ComputerError, ComputerError_Caption, MB_OK | MB_ICONERROR);
}
else
{
LPCWSTR ComputerError = L"Computer is opened!";
LPCWSTR ComputerError_Caption = L"Congrats";
MessageBox(NULL, ComputerError, ComputerError_Caption, MB_OK | MB_ICONINFORMATION);
}
}

thats my simple void...

Just put it into the button case like this..

case BUTTON_01:
  checkIfComputerIsOpened();
  break;

AND YOUR DONE!

As you can see its very very simple...

Thank you for reading and I hope you understood...



Embed : 


Saturday, February 22, 2014

[C++ TUT] Win32 (GUI) Programming - Creating a Window

Hey guys!
Today I will be teaching on how to use the Win32 WINAPI in C++ to create a GUI...

Ever wondered how so many programs are made in C++ and have a GUI? ... Because of this :P...

In C++ you can also NOT use the CommControls(); (which we will talk about a few tutorials ahead) and design your own... so let´s start...

First ..

Q : Can´t I simply drag and drop stuff like in C# , VB... ?
A : NO! C++ Does not have a designer, it is a 'professional' language and does not belong to any framework...

In this tutorial we will just create a blank window ... next tutorial we will add some controls and learn how to use them.

So let´s start!

Create a Win32 Project (or WinProject) , make sure its a Windows Application and that is setted as 'Empty Project'

Head over to your Source Files and add a .cpp file.. name it whatever you want!

In your new file include the Windows.h!

#include <Windows.h>

That contains nearly anything you need for a basic Win32 C++ GUI Programming...

Okay..

Now you are going to name your program class!

LPCWSTR g_szClassName = L"MainWindow_Class";

Again you can name it whatever you want!


Okay, now you want to create your function that handles the program close and destroy (and in future will handle buttons and stuff..)

First here is just the whole function.... then I will explain it further

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg , WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}

Okay so lets start.... well the actual function is just how it is! Its just how it is defined...

so

switch (msg) //This 'handles' anything that we will be later recieving from the WinMain!
{
case WM_CLOSE: //if we close the window
DestroyWindow(hwnd); // destroy it!
break;
case WM_DESTROY: //if we destroy the window
PostQuitMessage(0); //tell the computer that the program has quitted
break;
default: //returning to default
return DefWindowProc(hwnd, msg, wParam, lParam); //return the default window process
}
return 0; //out of the switch return 0 ( null )

Okay!
Now its the actual 'GUI' Designing... its not really designing cuz it will be blank :P

So here is the function and I will later explain it

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX wc; 
MSG msg;
HWND hwnd;

ZeroMemory(&wc, sizeof(&wc));

wc.style = 0;
wc.lpszClassName = g_szClassName;
wc.lpszMenuName = NULL;
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.hIconSm = LoadIcon(NULL, IDC_ICON);
wc.hIcon = LoadIcon(NULL, IDC_ICON);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wc.cbWndExtra = 0;
wc.cbSize = sizeof(WNDCLASSEX);
wc.cbClsExtra = 0;

if (!RegisterClassEx(&wc))
{
LPCWSTR Error01 = L"Could not register class!";
LPCWSTR Error01_Caption = L"Error";
MessageBox(NULL, Error01, Error01_Caption, MB_OK | MB_ICONERROR);
}

LPCWSTR WindowTitle = L"EXAMPLE WINDOW!";

hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, g_szClassName, WindowTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 300, NULL, NULL, hInstance, NULL);

if (hwnd == NULL)
{
LPCWSTR Error02 = L"Could not create Window!";
LPCWSTR Error02_Caption = L"Error";
MessageBox(NULL, Error02 , Error02_Caption , MB_OK | MB_ICONERROR);
}

ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);

while(GetMessage(&msg, 0, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return msg.wParam;
}

Okay! So  now I will comment it out...

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX wc;
MSG msg;
HWND hwnd;

ZeroMemory(&wc, sizeof(&wc)); //We are cleaning the memory so we know we are really starting from scratch

wc.style = 0; //the style of the window is null (default)
wc.lpszClassName = g_szClassName; //the class of the window we are setting it as g_szClassName
wc.lpszMenuName = NULL; //we really dont have a menu name ...
wc.lpfnWndProc = WndProc; //In here we are setting the process which will later recieve the messages
wc.hInstance = hInstance; //defining the hInstance
wc.hIconSm = LoadIcon(NULL, IDC_ICON); //defining the icon shown in the taskbar
wc.hIcon = LoadIcon(NULL, IDC_ICON); //defining the actual icon
wc.hCursor = LoadCursor(NULL, IDC_ARROW); //defining the program cursor
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); In here we are just setting the bg as white
wc.cbWndExtra = 0; // NULL
wc.cbSize = sizeof(WNDCLASSEX); // This im really not sure
wc.cbClsExtra = 0; // NULL

if (!RegisterClassEx(&wc))
{
LPCWSTR Error01 = L"Could not register class!";
LPCWSTR Error01_Caption = L"Error";
MessageBox(NULL, Error01, Error01_Caption, MB_OK | MB_ICONERROR);
} //Attempt to register our class.. if it fails then tells us it failed!

LPCWSTR WindowTitle = L"EXAMPLE WINDOW!"; //our title

hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, g_szClassName, WindowTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 300, NULL, NULL, hInstance, NULL); //creating our window into the hwnd

if (hwnd == NULL)
{
LPCWSTR Error02 = L"Could not create Window!";
LPCWSTR Error02_Caption = L"Error";
MessageBox(NULL, Error02 , Error02_Caption , MB_OK | MB_ICONERROR);
} //if window creation failed (hwnd is empty) tell us so!

ShowWindow(hwnd, nCmdShow); //Show the window
UpdateWindow(hwnd); // Update the window with the elements (none in this case)

while(GetMessage(&msg, 0, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
} //keep translating and sending messages to our WndProc func

return msg.wParam; //returning the msg wParam
}

Okay! So thats it.. very simple right??

I hope you guys have enjoyed and now understand the basics of WIN32 C++ programming...

FULL Source : http://pastebin.com/vSzsnTQR

Video : http://www.youtube.com/watch?v=PFvhXzpXRYg

Embed :