why do these two programs have different outputs when you run em...i've been tryin to figure it ...all morning
FIRST PRORAM
//----------------------------------------------------------------
#include <windows.h>
//#pragma hdrstop
//--------------------------------------------------------
//#pragma argsused
//--------------------------------------------------------
const char *ClsName="FundApp";
const char *WndName="Resouces Fundamental";
LRESULT CALLBACK WndProcedure(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
//------------------------------------------------------------------------------------
INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
MSG Msg;
HWND hWnd;
WNDCLASSEX WndClsEx;
//create application window
WndClsEx.cbSize =sizeof(WNDCLASSEX);
WndClsEx.style =CS_HREDRAW | CS_VREDRAW;
WndClsEx.lpfnWndProc =WndProcedure;
WndClsEx.cbWndExtra =0;
WndClsEx.cbClsExtra =0;
WndClsEx.hCursor =LoadIcon(NULL, IDC_ARROW);
WndClsEx.hIcon =LoadIcon(NULL, IDI_APPLICATION);
WndClsEx.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
WndClsEx.lpszMenuName=NULL;
WndClsEx.lpszClassName=ClsName;
WndClsEx.hInstance =hInstance;
WndClsEx.hIconSm =LoadIcon(NULL ,IDI_APPLICATION);
// Register application
RegisterClassEx(&WndClsEx);
// create the window object
hWnd= CreateWindow(
ClsName,
WndName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
// foind out of the window was created
if ( !hWnd) // if the window wasn't created
return FALSE; // STOP APPLICATION
// DISPLAY THE WINDOW TO THE USER
ShowWindow(hWnd, nCmdShow); //SW_SHOWNORMAL);
UpdateWindow(hWnd);
// Decode and treat the messages as long as application is running
while (GetMessage(&Msg, NULL, 0, 0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
//----------------------------------------------------------------------------
LRESULT CALLBACK WndProcedure(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch(Msg)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
//process leftover messages
return DefWindowProc(hWnd, Msg, wParam, lParam);
}
// if something was not done, let it go
return 0;
}
//--------------------------------------------------------------------------------
SECOND PROGRAM
#include <windows.h>
#pragma hdrstop
#pragma argused
const char *ClsName="BasicApp";
const char *WndName="A Simple Window";
LRESULT CALLBACK WndProcedure(HWND hWnd, UINT uMsg,
WPARAM wParam, LPARAM lParam);
INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MSG Msg;
HWND hWnd;
WNDCLASSEX WndClsEx;
//create application window
WndClsEx.cbSize =sizeof(WNDCLASSEX);
WndClsEx.style =CS_HREDRAW | CS_VREDRAW;
WndClsEx.lpfnWndProc =WndProcedure;
WndClsEx.cbClsExtra =0;
WndClsEx.cbWndExtra =0;
WndClsEx.hIcon =LoadIcon(NULL, IDI_APPLICATION);
WndClsEx.hCursor =LoadCursor(NULL, IDC_ARROW);
WndClsEx.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
WndClsEx.lpszMenuName =NULL;
WndClsEx.lpszClassName=ClsName;
WndClsEx.hInstance =hInstance;
WndClsEx.hIconSm =LoadIcon(NULL, IDI_APPLICATION);
// WHY DID YOU DO IT TWO TIMES
// Register the application
RegisterClassEx(&WndClsEx);
//Create a window Object
hWnd= CreateWindowEx(0,ClsName,
WndName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
// Find Out IF the Window Was Created
if (!hWnd) // if the window wasn't created
return 0; //stop the application
//Display the window to the user
ShowWindow(hWnd, SW_SHOWNORMAL);
UpdateWindow(hWnd);
//Decode and treat the messages
//as long as the application is running
while (GetMessage(&Msg, NULL, 0, 0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
LRESULT CALLBACK WndProcedure(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
{
//if the user wants to close the application
case WM_DESTROY:
//then close it
PostQuitMessage(WM_QUIT);
break;
default:
// Process the leftover messages
return DefWindowProc(hWnd,Msg,wParam,lParam);
}
// if something was not done let it go
return 0;
}