C++实例 窗口和消息

来源:互联网 发布:上海游光网络注册 编辑:程序博客网 时间:2024/06/05 10:14
#include <windows.h>#pragma comment(lib,"winmm.lib")LRESULT CALLBACK WindowProc(  HWND hwnd,      // handle to window  UINT uMsg,      // message identifier  WPARAM wParam,  // first message parameter  LPARAM lParam   // second message parameter);//http://www.pythonschool.com/int WINAPI WinMain(  HINSTANCE hInstance,      // handle to current instance  HINSTANCE hPrevInstance,  // handle to previous instance  LPSTR lpCmdLine,          // command line  int nCmdShow              // show state  ){static TCHAR szAppName[] = TEXT ("HelloWin") ;//LPCTSTR lpClassName = TEXT("HelloWin");LPCTSTR lpWindowName = TEXT("MyWindow");HWND hwnd;MSG msg;WNDCLASS wndclass; wndclass.style         = 0 ;     wndclass.lpfnWndProc   = WindowProc ;     wndclass.cbClsExtra    = 0 ;     wndclass.cbWndExtra    = 0 ;     wndclass.hInstance     = hInstance ;     wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;     wndclass.lpszMenuName  = NULL ;     wndclass.lpszClassName = szAppName ; if(!RegisterClass(&wndclass)) {MessageBox(NULL, TEXT("This program requires Windows NT!"),szAppName, MB_OK);return 0; } hwnd = CreateWindow(  szAppName,  // registered class name  lpWindowName, // window name  WS_OVERLAPPEDWINDOW,        // window style  CW_USEDEFAULT,                // horizontal position of window  CW_USEDEFAULT,                // vertical position of window  CW_USEDEFAULT,           // window width  CW_USEDEFAULT,          // window height  NULL,      // handle to parent or owner window  NULL,          // menu handle or child identifier  hInstance,  // handle to application instance  NULL        // window-creation data);ShowWindow(hwnd, nCmdShow);UpdateWindow(hwnd);     while (GetMessage (&msg, NULL, 0, 0))     {          TranslateMessage (&msg) ;          DispatchMessage (&msg) ;     }     return msg.wParam ;}LRESULT CALLBACK WindowProc(  HWND hwnd,      // handle to window  UINT uMsg,      // message identifier  WPARAM wParam,  // first message parameter  LPARAM lParam   // second message parameter  ){     HDC         hdc ;     PAINTSTRUCT ps ;     RECT        rect ;          switch (uMsg)     {     case WM_CREATE:          PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;           return 0 ;               case WM_PAINT:          hdc = BeginPaint (hwnd, &ps) ;                    GetClientRect (hwnd, &rect) ;                    DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,                    DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;                    EndPaint (hwnd, &ps) ;          return 0 ;               case WM_DESTROY:          PostQuitMessage (0) ;          return 0 ;     }return DefWindowProc(hwnd, uMsg, wParam, lParam);}

原创粉丝点击