zoukankan      html  css  js  c++  java
  • A simple windows programm in c

       
    A simple windows programm in c
            
    The following programm is a minimal windows program. It opens a window and writes a text into the window.
    If you compile it with MinGW, be sure to add the -mwindows flag in order to prevent the ... undefined reference to 'TextOutA@20' and ... undefined reference to 'GetStockObject@4 linker error.

    #include <windows.h>

    LRESULT CALLBACK WndProc(
        HWND   hWnd,
        UINT   msg,
        WPARAM wParam,
        LPARAM lParam ) {

      switch( msg ) {
        case WM_PAINT: {
          PAINTSTRUCT ps;
          HDC hDC = BeginPaint( hWnd, &ps );
          TextOut(hDC, 10, 10, "ADP GmbH", 8 );
          EndPaint( hWnd, &ps );
        }
        break;

        case WM_DESTROY:
          PostQuitMessage(0);
        break;

        default:
          return DefWindowProc( hWnd, msg, wParam, lParam);
      }
      return 0;
    }


    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                       LPSTR lpCmdLine, int nCmdShow) {

      WNDCLASSEX wce;

      wce.cbSize        = sizeof(wce);
      wce.style         = CS_VREDRAW | CS_HREDRAW;
      wce.lpfnWndProc   = (WNDPROC) WndProc;
      wce.cbClsExtra    = 0;
      wce.cbWndExtra    = 0;
      wce.hInstance     = hInstance;
      wce.hIcon         = LoadIcon((HINSTANCE) NULL, IDI_APPLICATION);
      wce.hCursor       = LoadCursor((HINSTANCE) NULL, IDC_ARROW);
      wce.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
      wce.lpszMenuName  = 0;
      wce.lpszClassName = "ADPWinClass",
      wce.hIconSm       = 0;
     
      if (!RegisterClassEx(&wce)) return 0;
     
      HWND hWnd = CreateWindowEx(
        0,          // Ex Styles
        "ADPWinClass",
        "ADP GmbH",
         WS_OVERLAPPEDWINDOW,
         CW_USEDEFAULT,  // x
         CW_USEDEFAULT,  // y
         CW_USEDEFAULT,  // Height
         CW_USEDEFAULT,  // Width
         NULL,           // Parent Window
         NULL,           // Menu, or windows id if child
         hInstance,      //
         NULL            // Pointer to window specific data
      );

      ShowWindow( hWnd, nCmdShow );

      MSG msg;
      int r;
      while ((r = GetMessage(&msg, NULL, 0, 0 )) != 0) {
        if (r == -1) {
          ;  // Error!
        }
        else {
          TranslateMessage(&msg);
          DispatchMessage(&msg);
        }
      }

      // The application's return value
      return msg.wParam;
    };

  • 相关阅读:
    Spring框架(二)
    Spring框架(一)
    SpringMVC中映射路径的用法之请求限制、命名空间
    关于映射路径@ReuqestMapping的总结
    关于什么是SpringMVC,和SpringMVC基于xml配置、注解配置、纯注解配置
    Spring Jdbc 框架整合的第一天
    Docker 搭建java+tomcat
    使用Docker安装mysql
    centos7.2 64位安装java
    Linux vim 基本操作
  • 原文地址:https://www.cnblogs.com/honeynm/p/4695878.html
Copyright © 2011-2022 走看看