#include<windows.h>
#include <stdio.h>

 

LRESULT CALLBACK WindProc(
    HWND hwnd,      // handle to window
    UINT uMsg,      // message identifier
    WPARAM wParam,  // first message parameter
    LPARAM lParam   // second message parameter
    );

 


int WINAPI WinMain(
   HINSTANCE hInstance,  // handle to current instance
   HINSTANCE hPrevInstance,  // handle to previous instance
   LPSTR lpCmdLine,      // pointer to command line
   int nCmdShow          // show state of window
   )
{
    //窗口类,结构体定义
    /**************************
    typedef struct _WNDCLASS {
        UINT    style;
        WNDPROC lpfnWndProc;
        int     cbClsExtra;
        int     cbWndExtra;
        HANDLE  hInstance;
        HICON   hIcon;
        HCURSOR hCursor;
        HBRUSH  hbrBackground;
        LPCTSTR lpszMenuName;
        LPCTSTR lpszClassName;
    } WNDCLASS;
    **************************/
    WNDCLASS wndclass;
    wndclass.cbClsExtra = 0;
    wndclass.cbWndExtra = 0;
    wndclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
    wndclass.hCursor = LoadCursor(NULL,IDC_APPSTARTING);
    wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
    wndclass.hInstance = hInstance;
    wndclass.lpfnWndProc = WindProc;
    wndclass.lpszClassName = "win";//类名win
    wndclass.lpszMenuName = NULL;
    wndclass.style = CS_HREDRAW|CS_VREDRAW;

    RegisterClass(&wndclass);//注册窗口类

    //创建窗口
    HWND hwnd;//句柄
    //创建窗口类
    /************************************************************
    HWND CreateWindow(
        LPCTSTR lpClassName,  // pointer to registered class name
        LPCTSTR lpWindowName, // pointer to window name
        DWORD dwStyle,        // window style
        int x,                // horizontal position of window
        int y,                // vertical position of window
        int nWidth,           // window width
        int nHeight,          // window height
        HWND hWndParent,      // handle to parent or owner window
        HMENU hMenu,          // handle to menu or child-window identifier
        HANDLE hInstance,     // handle to application instance
        LPVOID lpParam        // pointer to window-creation data
        );
    ************************************************************/

    hwnd = CreateWindow("win","WinMain",WS_OVERLAPPEDWINDOW,0,0,600,600,NULL,NULL,hInstance,NULL);
    //显示窗口
    ShowWindow(hwnd,SW_SHOWNORMAL);
    UpdateWindow(hwnd);

    MSG msg;
    /***********************************
    typedef struct tagMSG {     // msg
        HWND   hwnd;    
        UINT   message;
        WPARAM wParam;
        LPARAM lParam;
        DWORD  time;
        POINT  pt;
    } MSG;
    ***********************************/

    while (GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);//
    }
    return 0;
}

 

LRESULT CALLBACK WindProc(
      HWND hwnd,      // handle to window
      UINT uMsg,      // message identifier
      WPARAM wParam,  // first message parameter
      LPARAM lParam   // second message parameter
)
{
    switch (uMsg)
    {
       case WM_CHAR:
            break;
       case WM_LBUTTONDOWN:
           break;
       case WM_PAINT:
            break;
       case WM_CLOSE:
           if (IDYES==MessageBox(hwnd,"是否结束?","询问",MB_YESNO))
           {
               /******************
               BOOL DestroyWindow(
                     HWND hWnd   // handle to window to destroy
                );
               *****************/

               DestroyWindow(hwnd);
           }
           break;
       case WM_DESTROY:
           PostQuitMessage(0);
           break;
       default:
           return  DefWindowProc(hwnd,uMsg,wParam,lParam);
    }
    return 0;
}

posted on 2011-06-24 11:12  笨蛋一休  阅读(412)  评论(0编辑  收藏  举报