• 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.
  • 相关阅读:
    [刘阳Java]_JdbcTemplate用法_第11讲
    [刘阳Java]_Spring对Dao的支持_第10讲
    [刘阳Java]_Spring AOP基于XML配置介绍_第9讲
    [刘阳Java]_Spring AOP注解详细介绍_第8讲
    [刘阳Java]_Spring AOP入门_第7讲
    [刘阳Java]_Spring常用注解介绍_第6讲
    [刘阳Java]_Spring相关配置介绍_第5讲
    [刘阳Java]_了解BeanFactory_第4讲
    vue传参
    axios的增删改查。
  • 原文地址:https://www.cnblogs.com/delphi2014/p/4071078.html
Copyright © 2020-2023  润新知