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.
  • 相关阅读:
    初识python 2.x与3.x 区别
    装饰器
    函数的进阶
    Spring Boot启动问题:Cannot determine embedded database driver class for database type NONE
    22.Spring Cloud Config安全保护
    23.Spring Cloud Bus 无法更新问题(踩坑) Spring cloud config server Could not fetch remote for master remote
    24.Spring Cloud之Spring Cloud Config及Spring Cloud Bus
    Spring Boot整合Spring Data Elasticsearch 踩坑
    项目中Spring Security 整合Spring Session实现记住我功能
    32.再谈SpringBoot文件上传
  • 原文地址:https://www.cnblogs.com/YiShen/p/9748220.html
Copyright © 2011-2022 走看看