954,500 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Creating a window with CreateWindowA(...)

Hello,

I'm trying to create a window with a C++ win32 app project. I am using creating the HWND object, setting its properties, and then registering the object. Also, there is a WindowProc function.

What seems to happen is that the object registers but when I call CreateWindowA(...), this function call fails and no window is created.

Also, it seems that Error 1407 is generated on the CreateWindowA call.

Here is the code, any help is appreciated:


****************************************************************************

// INCLUDES
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <windowsx.h>
#include <stdio.h>
#include <math.h>
#include <iostream>

// DEFINES
#define WINDOW_CLASS_NAME "WINCLASS1"

// GLOBALS
HWND main_window_handle = NULL; // declares the window handle

// FUNCTIONS
LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, 
							LPARAM lparam)
{

	PAINTSTRUCT ps;
	HDC hdc;

	switch(msg)
	{
		case WM_CREATE:
		{
			return(0);
		}	break;
		
		case WM_PAINT:
		{
			hdc = BeginPaint(hwnd, &ps);
			EndPaint(hwnd, &ps);
			return(0);
		}	break;

		case WM_DESTROY:
		{
			PostQuitMessage(0);
			return(0);
		} break;

		default: break;

	}

	return (DefWindowProc(hwnd, msg, wparam, lparam));
}

// WINMAIN
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance,
				   LPSTR lpcmdline, int ncmdshow)
{
	WNDCLASS winclass;
	HWND hwnd;
	MSG msg;

	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 = (HBRUSH)GetStockObject(BLACK_BRUSH);
	winclass.lpszMenuName = NULL;
	winclass.lpszClassName = (LPCWSTR)WINDOW_CLASS_NAME;

	if(!RegisterClass(&winclass))
		return(0);

	hwnd = CreateWindowA(    WINDOW_CLASS_NAME,
							 "Hello Dave",
							 WS_OVERLAPPEDWINDOW | WS_VISIBLE,
							 0, 0,
							 320, 200,
							 NULL,
							 NULL,
							 hinstance,
							 NULL);

	if(hwnd == NULL)
	{
		return(0);
	}

	main_window_handle = hwnd;

	while(1)
	{
		if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
		{
			if(msg.message = WM_QUIT) break;

			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}
	}

	return (msg.wParam);
}
Dinomike1000
Newbie Poster
16 posts since Sep 2008
Reputation Points: 10
Solved Threads: 0
 

1407 is ERROR_CANNOT_FIND_WND_CLASS (see http://msdn.microsoft.com/en-us/library/ms681385(VS.85).aspx )

jencas
Posting Whiz
366 posts since Dec 2007
Reputation Points: 395
Solved Threads: 71
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You