• delphi 通过windows api 创建窗体


    {Register the Window class}
    function RegisterClassMeth: Boolean;
    var
      WindowClass: TWndClass;
    begin
      {setup our new window class}
      WindowClass.style := CS_HREDRAW or CS_VREDRAW; {set the class styles}
      WindowClass.lpfnWndProc := @DefWindowProc;     {point to the default window procedure}
      WindowClass.cbClsExtra := 0;                   {no extra class memory}
      WindowClass.cbWndExtra := 0;                   {no extra window memory}
      WindowClass.hInstance := HInstance;            {the application instance}
      WindowClass.hIcon := 0;                        {no icon specified}
      WindowClass.hCursor := 0;                      {no cursor specified}
      WindowClass.hbrBackground := COLOR_WINDOW;     {use a predefined color}
      WindowClass.lpszMenuName := nil;               {no memu}
      WindowClass.lpszClassName := 'TestClass';      {the registered class name}
    
      {now that we have our class set up,register it with the system}
      Result := Winapi.Windows.RegisterClass(WindowClass) <> 0;
    end;
    
    procedure TForm12.Button3Click(Sender: TObject);
    var
      hWindow: HWND;
    begin
      {Step 1: Register our new window class}
      if not RegisterClassMeth() then
      begin
        ShowMessage('RegisterClass failed!');
        Exit;
      end;
    
      {Step 2: Create a window based on our new class}
      hWindow := CreateWindowEx(0,      {no extend styles}
                                'TestClass',    {the registered class name}
                                'New Window',   {the title bar text}
                                WS_OVERLAPPEDWINDOW, {a normal window style}
                                CW_USEDEFAULT,     {default horizontal position}
                                CW_USEDEFAULT,     {default vertical position}
                                CW_USEDEFAULT,     {default width}
                                CW_USEDEFAULT,     {default height}
                                0,                 {no owner window}
                                0,                 {no menu}
                                hInstance,         {the application instance}
                                nil                {no additional information}
                                );
    
      {Step 3: If our window was created successfully,display it}
      if hWindow <> 0 then
      begin
        ShowWindow(hWindow,SW_SHOWNORMAL);
        UpdateWindow(hWindow);
      end
      else
      begin
        ShowMessage('CreateWindow');
        Exit;
      end;
    
    end;
  • 相关阅读:
    十二、redis常用的运维命令及注意参数
    十一,redis的主从集群
    十、redis的持久化配置
    九、Redis的消息发布和订阅
    八、Redis 中的事务
    apache、nginx、iis日志记录的各个字段内容与含义
    Pikachu-RCE
    Pikachu-SQL-Inject(SQL注入漏洞)
    Pikachu-CSRF(跨站请求伪造)
    Pikachu-XSS(跨站脚本)漏洞
  • 原文地址:https://www.cnblogs.com/yangxuming/p/9229523.html
Copyright © 2020-2023  润新知