zoukankan      html  css  js  c++  java
  • 《windows程序设计》鼠标消息(12)

    代码如下:

      program Project2;
    
      {$APPTYPE CONSOLE}
    
      {$R *.res}
    
      uses
        System.SysUtils,
        windows,
        Winapi.Messages,
        Vcl.Dialogs;
    
      type
        Point = record
          x: Integer;
          y: Integer;
        end;
    
      var
        swndClass: tagWNDCLASS;
        message: MSG;
        mHwnd: hwnd;
        cxClient, cyClient: Integer;
    
      function WindowProc(hwnd: hwnd; uMsg: UINT; wParam: wParam; lParam: lParam): LRESULT; stdcall;
      var
        i: integer;
        uhdc: HDC;
        ps: PAINTSTRUCT;
    
      begin
        case uMsg of
          WM_CREATE:
            begin
    
            end;
          WM_SIZE:
            begin
              cxclient := loword(lParam);
              cyclient := HiWord(lParam);
              result := 0;
              Exit;
            end;
          wm_paint:
            begin
              uhdc := BeginPaint(hwnd, ps);
              EndPaint(hwnd, ps);
              Exit;
            end;
          WM_MOUSEMOVE:
          begin
            Writeln('鼠标移动:' + HiWord(lParam).ToString + ','+loword(lParam).ToString );
          end;
          WM_LBUTTONDOWN:
          begin
            Writeln('鼠标左键按下:' + HiWord(lParam).ToString + ','+loword(lParam).ToString );
          end;
          WM_LBUTTONUP:
          begin
            Writeln('鼠标左键弹起:' + HiWord(lParam).ToString + ','+loword(lParam).ToString );
          end;
          WM_RBUTTONDOWN:
          begin
            Writeln('鼠标右键按下:' + HiWord(lParam).ToString + ','+loword(lParam).ToString );
          end;
          WM_RBUTTONUP:
          begin
            Writeln('鼠标右键弹起:' + HiWord(lParam).ToString + ','+loword(lParam).ToString );
          end;
        end;
    
        result := DefWindowProc(hwnd, uMsg, wParam, lParam);
      end;
    
      begin
        swndClass.cbClsExtra := 0; //窗口类扩展,无
        swndClass.cbWndExtra := 0; //窗口实例扩展
        swndClass.hbrBackground := COLOR_BACKGROUND; //窗口背景颜色黑色
        //LoadCursor()
        swndClass.hCursor := LoadCursor(0, IDC_ARROW); //窗口采用箭头光标
        swndClass.hIcon := LoadIcon(0, IDI_APPLICATION); //窗口最小化图标:采用缺省图标
        swndClass.hInstance := hInstance; //窗口实例句柄
        swndClass.lpfnWndProc := @WindowProc; //窗口处理函数
        swndClass.lpszClassName := 'myWnd'; //窗口类名
        swndClass.lpszMenuName := nil; //窗口菜单
        swndClass.style := CS_DBLCLKS; //窗口样式
        if RegisterClass(swndClass) = 0 then
        begin
          Writeln('windows class register error!');
          Exit;
        end;
    
        mHwnd := CreateWindowEx(0, 'myWnd', 'Delphi Windows', WS_OVERLAPPEDWINDOW,  {滚动条添加}
          CW_USEDEFAULT, CW_USEDEFAULT, 500, 500, HWND_DESKTOP, 0, hInstance, 0);
    
        ShowWindow(mHwnd, SW_SHOW);
        UpdateWindow(mHwnd);
        while GetMessage(message, 0, 0, 0) do
        begin
          TranslateMessage(message);
          DispatchMessage(message);
        end;
      end.
  • 相关阅读:
    关于flask-sesson
    自己动手写出静态网站与动态网站
    支付宝支付
    Scanner
    JAVA编程
    《剑指offer》经典面试50题
    java程序员常见面试题
    Java面试题(一) String相关
    Java集合总览
    写好Java代码的30条经验总结
  • 原文地址:https://www.cnblogs.com/YiShen/p/9748220.html
Copyright © 2011-2022 走看看