第一个Windows程序

来源:互联网 发布:js获取json对象的属性 编辑:程序博客网 时间:2024/05/21 15:01
#include <windows.h>#include <stdio.h>LRESULT CALLBACK winhehepro(HWND hwnd,      // handle to windowUINT uMsg,      // message identifierWPARAM wParam,  // first message parameterLPARAM 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   ) {    WNDCLASS wndcls;    wndcls.cbClsExtra=0;    wndcls.cbWndExtra=0;    wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);    wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);    wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);    wndcls.hInstance=hInstance;    wndcls.lpfnWndProc=winhehepro;    wndcls.lpszClassName="hehe";    wndcls.lpszMenuName=NULL;    wndcls.style=CS_HREDRAW|CS_VREDRAW;    RegisterClass(&wndcls);    HWND hwnd;//创建窗口    hwnd=CreateWindow("hehe",  // pointer to registered class name"Jarily", // pointer to window nameWS_OVERLAPPEDWINDOW,        // window style0,                // horizontal position of window0,                // vertical position of window600,           // window width400,          // window heightNULL,      // handle to parent or owner windowNULL,          // handle to menu or child-window identifierhInstance,     // handle to application instanceNULL        // pointer to window-creation data);    ShowWindow(hwnd,SW_SHOWNORMAL);    UpdateWindow(hwnd);    MSG msg;//消息循环    //while(GetMessage(&msg,hwnd,0,0))while(GetMessage(&msg,NULL,0,0))    {        TranslateMessage(&msg);        DispatchMessage(&msg);    }return msg.wParam;    //return 0;}LRESULT CALLBACK winhehepro(HWND hwnd,      // handle to windowUINT uMsg,      // message identifierWPARAM wParam,  // first message parameterLPARAM lParam   // second message parameter){    switch(uMsg)    {    case WM_CHAR:        char szChar[20];        sprintf(szChar,"char is %d",wParam);        MessageBox(hwnd,szChar,"xixi",0);        break;    case WM_LBUTTONDOWN:        MessageBox(hwnd,"left button is checked","xixi",0);        HDC hdc;        hdc=GetDC(hwnd);//不能在响应WM_PAINT消息时调用        TextOut(hdc,0,50,"Hello World!",strlen("Hello World!"));        ReleaseDC(hwnd,hdc);        break;    case WM_PAINT:        HDC hDC;        PAINTSTRUCT ps;        hDC=BeginPaint(hwnd,&ps);//BeginPaint只能在响应WM_PAINT消息时调用        TextOut(hDC,0,0,"hehe and xixi!",strlen("hehe and xixi!"));        EndPaint(hwnd,&ps);        break;    case WM_CLOSE:        if(IDYES==MessageBox(hwnd,"是否真的退出窗口?","iloveyou",MB_YESNO))        {            DestroyWindow(hwnd);        }        break;    case WM_DESTROY:        PostQuitMessage(0);        break;    default:return DefWindowProc(hwnd,uMsg,wParam,lParam);    }    return 0;}

3 0