创建一个windows窗口

2013-10-03 23:23:27   3450
#include <windows.h> 

/* Declare Windows procedure */ 

LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); 

/* Make the class name into a global variable */ 

char szClassName[ ] = "Classname"; 

int WINAPI WinMain (HINSTANCE hThisInstance, 

                    HINSTANCE hPrevInstance, 

                    LPSTR lpszArgument, 

                    int nFunsterStil) 

{ 

        HWND             hwnd;                       /* This is the handle for our window */ 

        MSG              messages;                   /* Here messages to the application are saved */ 

        WNDCLASSEX       kkun_windows;                     /* Data structure for the windowclass */ 

        /* The Window structure */ 

        kkun_windows.hInstance =           hThisInstance; 

        kkun_windows.lpszClassName =       szClassName; 

        kkun_windows.lpfnWndProc =         WindowProcedure;    /* This function is called by windows */ 

        kkun_windows.style =               CS_DBLCLKS;         /* Catch double-clicks */ 

        kkun_windows.cbSize = sizeof (WNDCLASSEX); 

        /* Use default icon and mouse-pointer */ 

        kkun_windows.hIcon = LoadIcon (NULL, IDI_APPLICATION); 

        kkun_windows.hIconSm = LoadIcon (NULL, IDI_APPLICATION); 

        kkun_windows.hCursor = LoadCursor (NULL, IDC_ARROW); 

        kkun_windows.lpszMenuName = NULL;                          /* No menu */ 

        kkun_windows.cbClsExtra = 0;                               /* No extra bytes after the window class */ 

        kkun_windows.cbWndExtra = 0;                               /* structure or the window instance */ 

        /* Use Windows's default color as the background of the window */ 

        kkun_windows.hbrBackground = (HBRUSH) COLOR_BACKGROUND; 

/* Register the window class, and if it fails quit the program */ 

if (!RegisterClassEx (&kkun_windows)) 



return 0; 

/* The class is registered, let's create the program*/ 

hwnd = CreateWindowEx ( 

                        0,                      /* Extended possibilites for variation */ 

                        szClassName,            /* Classname */ 

                        "Title Text",          /* Title Text */ 

                        WS_OVERLAPPEDWINDOW,    /* default window */ 

                        CW_USEDEFAULT,          /* Windows decides the position */ 

                        CW_USEDEFAULT,          /* where the window ends up on the screen */ 

                        500,                    /* The programs width */ 

                        500,                    /* and height in pixels */ 

                        HWND_DESKTOP,           /* The window is a child-window to desktop */ 

                        NULL,                   /* No menu */ 

                        hThisInstance,          /* Program Instance handler */ 

                        NULL                    /* No Window Creation data */ ); 

                        /* Make the window visible on the screen */ 

                        ShowWindow (hwnd, nFunsterStil); 

    /* Run the message loop. It will run until GetMessage() returns 0 */ 

    while (GetMessage (&messages, NULL, 0, 0)){ 

        /* Translate virtual-key messages into character messages */ 

        TranslateMessage(&messages); 

        /* Send message to WindowProcedure */ 

        DispatchMessage(&messages); 

        } 

    /* The program return-value is 0 - The value that PostQuitMessage() gave */ 

    return messages.wParam; 

    } 


/* This function is called by the Windows function DispatchMessage() */ 

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) 

{ 

    switch (message) /* handle the messages */ 

        { 

            case WM_DESTROY: 

            PostQuitMessage (0); /* send a WM_QUIT to the message queue */ 

            

   break; 

            default: /* for messages that we don't deal with */ 

    

        return DefWindowProc (hwnd, message, wParam, lParam); 

        } 

return 0; 

}

上一篇:没有了