HELP!

D

dnuthtsaso

Where do i put my code in this


--------------------------
#include <windows.h>

/* Declare Windows procedure */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/* Make the class name into a global variable */
char szClassName[ ] = "WindowsApp";

int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)

{
HWND hwnd; /* This is the handle for our window */
MSG messages; /* Here messages to the application are
saved */
WNDCLASSEX wincl; /* Data structure for the windowclass */

/* The Window structure */
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure; /* This function is
called by windows */
wincl.style = CS_DBLCLKS; /* Catch double-clicks
*/
wincl.cbSize = sizeof (WNDCLASSEX);

/* Use default icon and mouse-pointer */
wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL; /* No menu */
wincl.cbClsExtra = 0; /* No extra bytes after
the window class */
wincl.cbWndExtra = 0; /* structure or the
window instance */
/* Use Windows's default color as the background of the window */
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

/* Register the window class, and if it fails quit the program */
if (!RegisterClassEx (&wincl))
return 0;

/* The class is registered, let's create the program*/
hwnd = CreateWindowEx (
0, /* Extended possibilites for variation
*/
szClassName, /* Classname */
"Windows App", /* Title Text */
WS_OVERLAPPEDWINDOW, /* default window */
CW_USEDEFAULT, /* Windows decides the position */
CW_USEDEFAULT, /* where the window ends up on the
screen */
544, /* The programs width */
375, /* and height in pixels */
HWND_DESKTOP, /* The window is a child-window to
desktop */
NULL, /* No menu */
hThisInstance, /* Program Instance handler */
NULL /* No Window Creation data */
);

/* Make the window visible on the screen */
ShowWindow (hwnd, nFunsterStil);

/* Run the message loop. It will run until GetMessage() returns 0
*/
while (GetMessage (&messages, NULL, 0, 0))
{
/* Translate virtual-key messages into character messages */
TranslateMessage(&messages);
/* Send message to WindowProcedure */
DispatchMessage(&messages);
}

/* The program return-value is 0 - The value that
PostQuitMessage() gave */
return messages.wParam;
}


/* This function is called by the Windows function DispatchMessage()
*/

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM
wParam, LPARAM lParam)
{
switch (message) /* handle the messages */
{
case WM_DESTROY:
PostQuitMessage (0); /* send a WM_QUIT to the
message queue */
break;
default: /* for messages that we don't
deal with */
return DefWindowProc (hwnd, message, wParam, lParam);
}

return 0;
}
 
S

Stephen Horne

Where do i put my code in this

That's not a C++ issue, it's a Windows programming issue. That said...

WinMain is the main entry-point function, but normally all it does (as
here) is do initialisation then do a loop of TranslateMessage and
DispatchMessage API calls. This loop is important as it makes sure
that your windows recieve their messages, so they can act on them. The
windows themselves are event driven, and the messages are the
mechanism for notifying the windows of events.

Your initialisation registers a window class using RegisterClassEx,
and creates a window of that type using CreateWindowEx.

The application function that processes messages for this window class
was defined using a function pointer in the line...

wincl.lpfnWndProc = WindowProcedure;

The function WindowProcedure is basically where you would put your
code. At present, all there is is a default message handler and a
default message handler. That is, this code would open a window with a
completely blank client area, and it would shut down when you press
the close button, but that's about it.

So basically, you need to find out what messages your app needs to
handle, how to decode and process them, how to draw and/or add
controls to your window layout, etc etc.

The best way to learn programming using the Win32 APIs is to get a
copy of Charles Petzolds book...

http://www.amazon.com/Programming-Windows®-Fifth-Microsoft/dp/157231995X

For loads of free Windows API reference information, look at the MSDN
website...

http://msdn.microsoft.com/en-gb/default.aspx

Select the Library tab, then "Win32 and COM development", "Development
Guides", then "Windows API". The "Generic Sample Application" is
probably similar to the code you posted, but more fully developed.

Writing a Windows App this way is often a waste of time. Usually, it's
easier to write a dialog-based program - you design the layout in a
resource editor and get a good head start in terms of the GUI handling
since Windows does a lot of the basics for you. This is also covered
in Petzold.

For the ultimate in simple, drop most of that code and just use...

#include <windows.h>

int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil) // Can't be bothered looking
// up the standard name for
// this last param, but this
// isn't it.

{
MessageBox (NULL, "Hello world", "Hello World", MB_OK);
// The second string above is the window caption
// The first string above is displayed in the window
// The MB_OK indicates that a single OK button is included

return 0;
}

However, this is a pretty odd time to be learning this kind of stuff -
shouldn't you be learning .NET or something?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top