创建窗口的例子程序

    技术2025-03-17  24

    #include <windows.h>

    #pragma comment(lib,"WINMM")

     

    // WPARAM  word param  LPARAM  long param

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

     

     

    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)

     

    {

           //变量声明

           static TCHAR szAppName[] = TEXT("HelloWin");

           HWND   hwnd;

           MSG    msg;

     

           //设计窗口类

           WNDCLASS wndclass ;      

           wndclass.style = CS_HREDRAW|CS_VREDRAW;

           wndclass.lpfnWndProc = WndProc;

           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_ICONERROR);

                  return 0 ;

           }

     

           //创建窗口

           hwnd = CreateWindow( szAppName,      // window class name

                  TEXT ("The Hello Program"),   // window caption

                  WS_OVERLAPPEDWINDOW,  // window style

                  CW_USEDEFAULT,// initial x position

                  CW_USEDEFAULT,// initial y position

                  CW_USEDEFAULT,// initial x size

                  CW_USEDEFAULT,// initial y size

                  NULL,                 // parent window handle

                  NULL,            // window menu handle

                  hInstance,   // program instance handle

                  NULL) ;      // creation parameters

     

           //显示窗口

           ShowWindow (hwnd, iCmdShow) ;

     

           //更新窗口

           UpdateWindow (hwnd) ;

          

           while (GetMessage (&msg, NULL, 0, 0))

           {

                  TranslateMessage (&msg) ;

                  DispatchMessage (&msg) ;

           }

           return msg.wParam ;

    }

     

     

    //窗口过程函数

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

     

    {

           HDC hdc;

           PAINTSTRUCT ps;

           RECT rect;

     

           switch (message)

     

           {

           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, message, wParam, lParam);

     

    }

    最新回复(0)