Thread: Help Please

  1. #1
    Registered User Cosmic Diva's Avatar
    Join Date
    Mar 2002
    Posts
    37

    Question Help Please

    I don't know what's wrong. I can't get this to compile. The window handles are right, but now I can't get it to display my buttons. I also can't change the window color to the color I want. I can make it white, black, gray, and the color of the active title bar and the 3d object color.

    I know this code looks bad, but I can't get the code tag to work.

    // Password Keeper.cpp : Defines the entry point for the application.
    //0x00f8ff

    #include "stdafx.h"
    #include "menubar.rc"
    const char g_szClassName[] = "myWindowClass";


    int APIENTRY WinMain(HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
    {
    WNDCLASSEX wc;
    HWND hwnd;
    MSG Msg;

    //Step 1: Registering the Window Class
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = 0;
    wc.lpfnWndProc = WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
    wc.lpszMenuName = NULL;
    wc.lpszClassName = g_szClassName;
    wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

    if(!RegisterClassEx(&wc))
    {
    MessageBox(NULL, "Window Registration Failed!", "Error!",
    MB_ICONEXCLAMATION | MB_OK);
    return 0;
    }

    // Step 2: Creating the Window
    hwnd = CreateWindowEx(
    WS_EX_CLIENTEDGE,
    g_szClassName,
    "The Password Keeper",
    WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
    NULL, NULL, hInstance, NULL);

    if(hwnd == NULL)
    {
    MessageBox(NULL, "Window Creation Failed!", "Error!",
    MB_ICONEXCLAMATION | MB_OK);
    return 0;
    }

    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);

    // Step 3: The Message Loop
    while(GetMessage(&Msg, NULL, 0, 0) > 0)
    {
    TranslateMessage(&Msg);
    DispatchMessage(&Msg);
    }
    return Msg.wParam;
    }

    LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
    {
    switch(msg)
    {
    case WM_CLOSE:
    DestroyWindow(hwnd);
    break;
    case WM_DESTROY:
    PostQuitMessage(0);
    break;
    default:
    return DefWindowProc(hwnd, msg, wParam, lParam);
    }
    return 0;
    }

    {
    switch (Message)
    {
    case WM_CREATE:
    //create a default push button
    CreateWindowEx(0, //more or 'extended' styles
    TEXT("BUTTON"), //'class' of control to create
    TEXT("DEFAULT PUSH BUTTON"), //the control caption
    WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTON, //control style: how it looks
    10, //control position: left
    10, //control position: top
    200, //control width
    30, //control height
    hwnd, //parent window handle
    NULL, //control's ID
    hInst, //application instance
    NULL);
    //create a push button
    CreateWindowEx(0, //more or 'extended' styles
    TEXT("BUTTON"), //'class' of control to create
    TEXT("PUSH BUTTON"), //the control caption
    WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, //control style: how it looks
    10, //control position: left
    50, //control position: top
    200, //control width
    30, //control height
    hwnd, //parent window handle
    NULL, //control's ID
    hInst, //application instance
    NULL);
    }
    "A computer is this amazingly fast.....but stupid machine." - C++ for dummies

  2. #2
    &TH of undefined behavior Fordy's Avatar
    Join Date
    Aug 2001
    Posts
    5,793
    [list=1][*]Dont include a resource file at the top like that.[*]You need to make sure windows.h is included[*]You can make the HINSTANCE global....its easier[*]you only need 1 switch statement per procedure[*]Dont declare a switch outside of a function[*]Forward declare your procedures[*]Please use code formatting when posting code[/list=1]

    Code:
    #include <windows.h>
    
    char g_szClassName[] = "myWindowClass";
    HINSTANCE hInst;
    
    LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
    
    
    int APIENTRY WinMain(HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
    {
    WNDCLASSEX wc;
    HWND hwnd;
    MSG Msg;
    
    hInst = hInstance;
    //Step 1: Registering the Window Class
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = 0;
    wc.lpfnWndProc = WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
    wc.lpszMenuName = NULL;
    wc.lpszClassName = g_szClassName;
    wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
    
    if(!RegisterClassEx(&wc))
    {
    MessageBox(NULL, "Window Registration Failed!", "Error!",
    MB_ICONEXCLAMATION | MB_OK);
    return 0;
    }
    
    // Step 2: Creating the Window
    hwnd = CreateWindowEx(
    WS_EX_CLIENTEDGE,
    g_szClassName,
    "The Password Keeper",
    WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
    NULL, NULL, hInstance, NULL);
    
    if(hwnd == NULL)
    {
    MessageBox(NULL, "Window Creation Failed!", "Error!",
    MB_ICONEXCLAMATION | MB_OK);
    return 0;
    }
    
    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);
    
    // Step 3: The Message Loop
    while(GetMessage(&Msg, NULL, 0, 0) > 0)
    {
    TranslateMessage(&Msg);
    DispatchMessage(&Msg);
    }
    return Msg.wParam;
    }
    
    LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
    {
    	switch(msg)
    	{
    		case WM_CLOSE:
    			DestroyWindow(hwnd);
    			break;
    		case WM_CREATE:
    					//create a default push button
    		CreateWindowEx(	0, //more or 'extended' styles
    					   	TEXT("BUTTON"), //'class' of control to create
    					   	TEXT("DEFAULT PUSH BUTTON"), //the control caption
    					   	WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTON, //control style: how it looks
    					   	10, //control position: left
    					   	10, //control position: top
    						200, //control width
    						30, //control height
    						hwnd, //parent window handle
    						NULL, //control's ID
    						hInst, //application instance
    						NULL); 
    							//create a push button
    		CreateWindowEx( 0, //more or 'extended' styles
    						TEXT("BUTTON"), //'class' of control to create
    						TEXT("PUSH BUTTON"), //the control caption
    						WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, //control style: how it looks
    						10, //control position: left
    						50, //control position: top
    						200, //control width
    						30, //control height
    						hwnd, //parent window handle
    						NULL, //control's ID
    						hInst, //application instance
    						NULL);
    		break;
    		case WM_DESTROY:
    			PostQuitMessage(0);
    			break;
    		default:
    		return DefWindowProc(hwnd, msg, wParam, lParam);
    	}
    return 0;
    }

Popular pages Recent additions subscribe to a feed