NativeWindow_01

1、

  “{$O-}”关闭优化

  “{$O-}”打开优化

2、

unit NativeWindow;

interface

uses
  Windows, Messages, SysUtils;

procedure CreateWindow;

implementation

function ProcWindow(_hWnd :HWND;
                    _uMsg :UINT;
                    _wParam :WPARAM;
                    _lParam :LPARAM):longint;stdcall;
var
  hDc1 :HDC;
  ps :PAINTSTRUCT;
begin
  if (_uMsg = WM_LBUTTONUP) then
  begin
    MessageBox(0, 'Up', '1', 0);
  end
  else if (_uMsg = WM_PAINT) then
    begin
    hDc1 := BeginPaint(_hWnd, ps);
    TextOut(hDc1, 0, 0, 'ASDFG zxcvb', strlen('ASDFG zxcvb'));
    EndPaint(_hWnd, ps);
    Result := 0;
    Exit;
    end
  else if (_uMsg = WM_DESTROY) then
  begin
    DestroyWindow(_hwnd);
    PostQuitMessage(0);
  
    Result := 0;
    Exit;
  end;
  Result := DefWindowProc(_hWnd, _uMsg, _wParam, _lParam);
end;

{$O-}
procedure CreateWindow;
var wndcls :WNDCLASS;
    hInstance :THandle;
    hWnd1 :HWND;
    iErr :integer;
begin
  hInstance := Windows.GetModuleHandle(nil);

  ZeroMemory(@wndcls, sizeof(wndcls));
    wndcls.cbClsExtra    := 0;
    wndcls.cbWndExtra    := 0;
    wndcls.hbrBackground := HBRUSH(GetStockObject(WHITE_BRUSH));    // 背景画刷
    wndcls.hCursor        := LoadCursor(0, IDC_CROSS);
    wndcls.hIcon        := LoadIcon(0, IDI_ERROR);    // 窗口图标
    wndcls.hInstance    := hInstance;
    wndcls.lpfnWndProc    := @ProcWindow;
    wndcls.lpszClassName:= 'zc20110929';
    wndcls.lpszMenuName := nil;
    wndcls.style        := CS_HREDRAW or CS_VREDRAW;
  RegisterClass(wndcls);

  hWnd1 := CreateWindowEx(
        WS_EX_CLIENTEDGE,
        wndcls.lpszClassName,
        'ZC Window',
        WS_OVERLAPPEDWINDOW,
        100, 100,
        400, 300,
        0,
        0, //g_hMenu,
        hInstance,
        0);
  if (hWnd1 = 0) then
    iErr := GetLastError;

//    ShowWindow(hWnd1, SW_SHOWNORMAL);
    UpdateWindow(hWnd1);
end;
{$O+}

end.

3、

 

转载于:https://www.cnblogs.com/CodeSkill/p/6099954.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值