Jump to content
  • Advertisement

Archived

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

Simple question - WINAPI

This topic is 6171 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

Hello I''ve gotten to make a window and use a menu system and all, but am trying to get this stuff into my head so I can stop referring to the simple tutorials. In breakin gup the creation of a simple window for winprog. (which it does work, so I''n not complaining) : I''ve extracted the register and create window procedures. The program compiles, but when run, the "Window creation Failed" error activates. What is essiantially required to make this program run ? (Not display the window, just "run" without errors). I''d just like to know how it works, instead of just memorizing code.. Wez
  
#include <windows.h>

const char g_szClassName[] = "myWindowClass";

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM 

lparam)
{
	return 0;
}

int WINAPI WinMain(HINSTANCE hinst, HINSTANCE hpinst, LPSTR cmdln, int 

cmdshow)
{
WNDCLASSEX wc;
HWND hwnd;

wc.cbSize	= sizeof(WNDCLASSEX);
wc.style	= CS_BYTEALIGNCLIENT;
wc.lpfnWndProc	= WndProc;
wc.cbClsExtra	= 0;
wc.cbWndExtra	= 0;
wc.hInstance	= hinst;	
wc.hIcon	= LoadIcon(NULL, IDI_EXCLAMATION);
wc.hCursor	= LoadCursor(NULL, IDC_CROSS);
wc.hbrBackground= (HBRUSH) (COLOR_APPWORKSPACE);
wc.lpszMenuName = NULL;
wc.lpszClassName= g_szClassName;
wc.hIconSm	= LoadIcon(NULL, IDI_EXCLAMATION);

if (!RegisterClassEx(&wc))
{
	MessageBox(NULL,"window reg failed","err",MB_OK);
	return 0;
}

hwnd = CreateWindowEx(
	WS_EX_CLIENTEDGE,
	g_szClassName,
	" - ? - ",
	WS_OVERLAPPEDWINDOW,
	CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
	NULL, NULL, hinst, NULL);

if (hwnd == NULL)
{
	MessageBox(NULL, "Window Creation Failed","err", MB_OK);
	return 0;
}

}
[/souce]  

Share this post


Link to post
Share on other sites
Advertisement
Guest Anonymous Poster
The problem is that you''re returning 0 from WndProc rather than passing the message on to DefWindowProc.

Share this post


Link to post
Share on other sites
oh ... yes ! .. um .. yes i .. er .. knew that already .. but .. er e=mc squared ..

heheh

thanx

hmm .. so

(btw im being sarc over there ^ .. i dint relly kno) ..

so .. in WndProc, instead of returning 0, I should return DefWindowProc(hwnd, msg, wparam, lparam);

and it should open and close without errors ? ..

will try

thanx

Share this post


Link to post
Share on other sites
*LOL* yeah i found that out, BC complained about the prog being open, checked out task manager and there were gazzilion test.exes running *lololo*

thanx :D ..

atleast the code makes a bit more sense as to why bits and pieces are there



will be moving on to the next ones, when i have sum time ..

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.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!