Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

MTT

Code problem

This topic is 5719 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I need help knowing how to fix the problem im having with some code from Tricks of the windows game programming gurus. Its just the sample code to make a basic windows window but it wont work. So heres the code:
  
// DEMO2_3.CPP - A complete windows program

// INCLUDES ///////////////////////////////////////////////

#define WIN32_LEAN_AND_MEAN // just say no to MFC
#include <windows.h> // include all the windows headers
#include <windowsx.h> // include useful macros.#include <stdio.h>
#include <math.h>
// DEFINES ////////////////////////////////////////////////

// defines for windows

#define WINDOW_CLASS_NAME "WINCLASS1"
// GLOBALS ////////////////////////////////////////////////

// FUNCTIONS //////////////////////////////////////////////

LRESULT CALLBACK WindowProc(HWND hwnd,
UINT msg,
WPARAM wparam,
LPARAM lparam)
{
// this is the main message handler of the system

PAINTSTRUCT ps; // used in WM_PAINT

HDC hdc; // handle to a device context

// what is the message

switch(msg)
{
case WM_CREATE:
{// do initialization stuff here

// return success

return(0);
} break;
case WM_PAINT:
{
// simply validate the window

hdc = BeginPaint(hwnd,&ps);
// you would do all your painting here

EndPaint(hwnd,&ps);
// return success

return(0);
} break;
case WM_DESTROY:
{
// kill the application, this sends a WM_QUIT message

PostQuitMessage(0);
// return success

return(0);
} break;
default:break;} // end switch

// process any messages that we didn''t take care of

return (DefWindowProc(hwnd, msg, wparam, lparam));
} // end WinProc

// WINMAIN ////////////////////////////////////////////////

int WINAPI WinMain(HINSTANCE hinstance,
HINSTANCE hprevinstance,
LPSTR lpcmdline,
int ncmdshow)
{
WNDCLASSEX winclass; // this will hold the class we create

HWND hwnd; // generic window handle

MSG msg; // generic message

// first fill in the window class structure

winclass.cbSize = sizeof(WNDCLASSEX);
winclass.style = CS_DBLCLKS | CS_OWNDC |
CS_HREDRAW | CS_VREDRAW;
winclass.lpfnWndProc = WindowProc;
winclass.cbClsExtra = 0;winclass.cbWndExtra = 0;
winclass.hInstance = hinstance;
winclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
winclass.hCursor = LoadCursor(NULL, IDC_ARROW);
winclass.hbrBackground = GetStockObject(BLACK_BRUSH);
winclass.lpszMenuName = NULL;
winclass.lpszClassName = WINDOW_CLASS_NAME;
winclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
// register the window class

if (!RegisterClassEx(&winclass))
return(0);
// create the window

if (!(hwnd = CreateWindowEx(NULL, // extended style

WINDOW_CLASS_NAME, // class

"Your Basic Window", // title

WS_OVERLAPPEDWINDOW | WS_VISIBLE,
0,0, // initial x,y

400,400, // initial width, height

NULL, // handle to parent

NULL, // handle to menu

hinstance,// instance of this application

NULL))) // extra creation parms

return(0);// enter main event loop

while(GetMessage(&msg,NULL,0,0))
{
// translate any accelerator keys

TranslateMessage(&msg);
// send the message to the window proc

DispatchMessage(&msg);
} // end while

// return to Windows like this

return(msg.wParam);
} // end WinMain

//////////////////////////////////////////////////

  
and heres the error im gettin: C:\Program Files\C++\Microsoft Visual C++ 6.0 Standard Edition\MyProjects\window1\window1.cpp(66) : error C2440: ''='' : cannot convert from ''void *'' to ''struct HBRUSH__ *'' Conversion from ''void*'' to pointer to non-''void'' requires an explicit cast I really really want to make this problem better so that i can experiment with the windows stuff it tellin me so plese help.

Share this post


Link to post
Share on other sites
Advertisement
Guest Anonymous Poster
You must type cast the return of GetStockObject() as shown below:

(HBRUSH)GetStockObject(BLACK_BRUSH);

Hope that helps.

Share this post


Link to post
Share on other sites
If I remember correctly, that was a typo in the first edition. The publisher''s website (don''t know off the top of my head) has a list of corrections for the first edition. Otherwise the 2nd edition has all these changes.

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!