zoukankan      html  css  js  c++  java
  • Delphi7 API(4) 消息_重绘

    消息创建WM_CREATE:

    代码如下

    program Project1;
    
    uses
      Windows, Messages;
    
    {供 WM_PAINT 消息调用的自定义过程}
    procedure OnPaint(h: HWND);
    const
      str = '创建的窗口程序';
    var
      DC: HDC;
      ps: PAINTSTRUCT;
      Rect: TRect;
    begin
      MessageBeep(0);
      DC := BeginPaint(h, ps);
      GetClientRect(h, Rect);
      DrawText(DC, PChar(str), -1, Rect, DT_SINGLELINE or DT_CENTER or DT_VCENTER);
      EndPaint(h, ps);
    end;
    
    function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall;
    begin
      Result := 0;
      case msg of
        WM_PAINT  : OnPaint(wnd); {在收到 WM_PAINT 消息时调用自定义的 OnPaint 过程}
        WM_DESTROY: PostQuitMessage(0);
      else
        Result := DefWindowProc(wnd, msg, wParam, lParam);
      end;
    end;
    
    function RegMyWndClass: Boolean;
    var
      cls: TWndClass;
    begin
      cls.style         := CS_HREDRAW or CS_VREDRAW;
      cls.lpfnWndProc   := @WndProc;
      cls.cbClsExtra    := 0;
      cls.cbWndExtra    := 0;
      cls.hInstance     := HInstance;
      cls.hIcon         := 0;
      cls.hCursor       := LoadCursor(0, IDC_ARROW);
      cls.hbrBackground := HBRUSH(COLOR_WINDOW + 1);
      cls.lpszMenuName  := nil;
      cls.lpszClassName := 'MyWnd';
      Result := RegisterClass(cls) <> 0;
    end;
    
    {程序入口}
    const
      tit = 'New Form';
      ws = WS_OVERLAPPEDWINDOW;
      x = 100; y = 100; w = 300; h = 180;
    var
      hWnd: THandle;
      Msg : TMsg;
    begin
      RegMyWndClass;
      hWnd := CreateWindow('MyWnd', tit, ws, x, y, w, h, 0, 0, HInstance, nil);
      ShowWindow(hWnd, SW_SHOWNORMAL);
      UpdateWindow(hWnd);
    
      while(GetMessage(Msg, 0, 0, 0)) do
      begin
        TranslateMessage(Msg);
        DispatchMessage(Msg);
      end;
    end.
  • 相关阅读:
    loj#6433. 「PKUSC2018」最大前缀和(状压dp)
    PKUWC2019游记
    10. Regular Expression Matching
    9. Palindrome Number
    8. String to Integer (atoi)
    7. Reverse Integer
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/delphi2014/p/4071078.html
Copyright © 2011-2022 走看看