![]() |
| | #1 |
| Registered User Join Date: Sep 2004
Posts: 3
| Code: /*
* A basic example of Win32 programmiwng in C.
*
* This source code is in the PUBLIC DOMAIN and has NO WARRANTY.
*
* Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
*/
#include <windows.h>
#include <string.h>
#include <iostream>
/*
* This is the window function for the main window. Whenever a message is
* dispatched using DispatchMessage (or sent with SendMessage) this function
* gets called with the contents of the message.
*/
LRESULT CALLBACK
MainWndProc (HWND hwnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
/* The window handle for the "Click Me" button. */
static HWND hwndButton = 0;
static int cx, cy;/* Height and width of our button. */
HDC hdc;/* A device context used for drawing */
PAINTSTRUCT ps;/* Also used during window drawing */
RECT rc;/* A rectangle used during drawing */
/*
* Perform processing based on what kind of message we got.
*/
switch (nMsg)
{
case WM_CREATE:
{
/* The window is being created. Create our button
* window now. */
TEXTMETRIC tm;
/* First we use the system fixed font size to choose
* a nice button size. */
hdc = GetDC (hwnd);
SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT));
GetTextMetrics (hdc, &tm);
cx = tm.tmAveCharWidth * 30;
cy = (tm.tmHeight + tm.tmExternalLeading) * 2;
ReleaseDC (hwnd, hdc);
/* Now create the button */
hwndButton = CreateWindow (
"button",/* Builtin button class */
"Close",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
0, 0, cx, cy,
hwnd,/* Parent is this window. */
(HMENU) 1,/* Control ID: 1 */
((LPCREATESTRUCT) lParam)->hInstance,
NULL
);
return 0;
break;
}
case WM_DESTROY:
/* The window is being destroyed, close the application
* (the child button gets destroyed automatically). */
PostQuitMessage (0);
return 0;
break;
case WM_PAINT:
/* The window needs to be painted (redrawn). */
hdc = BeginPaint (hwnd, &ps);
GetClientRect (hwnd, &rc);
/* Draw "Hello, World" in the middle of the upper
* half of the window. */
rc.bottom = rc.bottom / 2;
DrawText (hdc, "Little Fighter Elite Character Guide- By Carey Sizer", -1, &rc,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint (hwnd, &ps);
return 0;
break;
case WM_SIZE:
/* The window size is changing. If the button exists
* then place it in the center of the bottom half of
* the window. */
if (hwndButton &&
(wParam == SIZEFULLSCREEN ||
wParam == SIZENORMAL)
)
{
rc.left = (LOWORD(lParam) - cx) / 2;
rc.top = HIWORD(lParam) * 3 / 4 - cy / 2;
MoveWindow (
hwndButton,
rc.left, rc.top, cx, cy, TRUE);
}
break;
case WM_COMMAND:
/* Check the control ID, notification code and
* control handle to see if this is a button click
* message from our child button. */
if (LOWORD(wParam) == 1 &&
HIWORD(wParam) == BN_CLICKED &&
(HWND) lParam == hwndButton)
{
/* Our button was clicked. Close the window. */
DestroyWindow (hwnd);
}
return 0;
break;
}
/* If we don't handle a message completely we hand it to the system
* provided default window function. */
return DefWindowProc (hwnd, nMsg, wParam, lParam);
}
int STDCALL
WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow)
{
HWND hwndMain;/* Handle for the main window. */
MSG msg;/* A Win32 message structure. */
WNDCLASSEX wndclass;/* A window class structure. */
char*szMainWndClass = "WinTestWin";
/* The name of the main window class */
/*
* First we create a window class for our main window.
*/
/* Initialize the entire structure to zero. */
memset (&wndclass, 0, sizeof(WNDCLASSEX));
/* This class is called WinTestWin */
wndclass.lpszClassName = szMainWndClass;
/* cbSize gives the size of the structure for extensibility. */
wndclass.cbSize = sizeof(WNDCLASSEX);
/* All windows of this class redraw when resized. */
wndclass.style = CS_HREDRAW | CS_VREDRAW;
/* All windows of this class use the MainWndProc window function. */
wndclass.lpfnWndProc = MainWndProc;
/* This class is used with the current program instance. */
wndclass.hInstance = hInst;
/* Use standard application icon and arrow cursor provided by the OS */
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
/* Color the background white */
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
/*
* Now register the window class for use.
*/
RegisterClassEx (&wndclass);
/*
* Create our main window using that window class.
*/
hwndMain = CreateWindow (
szMainWndClass,/* Class name */
"Hello",/* Caption */
WS_OVERLAPPEDWINDOW,/* Style */
CW_USEDEFAULT,/* Initial x (use default) */
CW_USEDEFAULT,/* Initial y (use default) */
CW_USEDEFAULT,/* Initial x size (use default) */
CW_USEDEFAULT,/* Initial y size (use default) */
NULL,/* No parent window */
NULL,/* No menu */
hInst,/* This program instance */
NULL/* Creation parameters */
);
/*
* Display the window which we just created (using the nShow
* passed by the OS, which allows for start minimized and that
* sort of thing).
*/
ShowWindow (hwndMain, nShow);
UpdateWindow (hwndMain);
/*
* The main message loop. All messages being sent to the windows
* of the application (or at least the primary thread) are retrieved
* by the GetMessage call, then translated (mainly for keyboard
* messages) and dispatched to the appropriate window procedure.
* This is the simplest kind of message loop. More complex loops
* are required for idle processing or handling modeless dialog
* boxes. When one of the windows calls PostQuitMessage GetMessage
* will return zero and the wParam of the message will be filled
* with the argument to PostQuitMessage. The loop will end and
* the application will close.
*/
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return msg.wParam;
}
What I want to do is: Add about 15 buttons in the main window that have the characters names on them, and when you click them it opens a mini window- like 150px by 250. These also need a little bmp of the character in them, and a bold title with a blurb about them. It would be handy if they had a scroll bar as well. We want the colour scheme to a dark blue, and all of the text white. (the buttons as well). I also need to insert a bitmap as a title in the main window. If you can help me out with doing this, we will put your name + website (or whatever u want- email?) in the credits for the game, and you can add your name in the bottom of the character guide. Any help is much appreciated! Last edited by Salem; 09-03-2004 at 11:50 PM. Reason: code tagging |
| carey_sizer is offline | |
| | #2 |
| Guest Join Date: Aug 2001
Posts: 5,034
| welcome to the boards! 1) read the FAQ before posting anything else. 2) always use code tags. 3) only post code that is relevant to the specific question. 4) make sure you are posting questions to the correct forum. >> What I want to do is: figure it out for yourself and post questions here when you get stuck. that's how it works here. |
| Sebastiani is offline | |
| | #3 |
| Yes, my avatar is stolen Join Date: Dec 2002
Posts: 2,544
| Your task sounds like an ideal candidate to implement as a web page rather than a windows program. Web page advantages:
Last edited by anonytmouse; 09-04-2004 at 11:53 AM. |
| anonytmouse is offline | |
| | #4 |
| i dont know Join Date: May 2002
Posts: 1,200
| Yeah, the only way I would advise creating an actual program is if they were 3d characters, and you wnted to be able to view them and or edit them. And you can put a web page online and you could look at it from any computer (with internet). |
| Vicious is offline | |
| | #5 |
| Registered User Join Date: Sep 2004
Posts: 3
| So, how is that done? I know html quite well, and other web languages also. So that might be an option, but when we put our game onto a disk (it's nor commercial or anything) but we just wanna give it out to friends and stuff, so would we be able to include an exe file, that has pre-set characters, and descriptions (in a html files, which are shown in the program) and then there is an option to update from the web as we make more characters, which just downloads a new html file- a bit like norton. Is this possible with C? thanks |
| carey_sizer is offline | |
![]() |
| Thread Tools | |
| Display Modes | |
|
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| 6 measly errors | beene | Game Programming | 11 | 11-14-2006 11:06 AM |
| internet | yeah | C Programming | 16 | 02-12-2005 10:37 PM |
| Problem with creating new window, from another window | Garfield | Windows Programming | 6 | 01-11-2004 02:10 PM |
| OpenGL with WIN 32 | Gravedigga | Windows Programming | 3 | 11-01-2003 02:54 PM |
| problem with open gl engine. | gell10 | Game Programming | 1 | 08-21-2003 04:10 AM |