0

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);
}
2
Contributors
1
Reply
2
Views
8 Years
Discussion Span
Last Post by jencas
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.