当前位置: 首页 > article >正文

aardio —— 改变按钮文本颜色

import win.ui;
/*DSG{{*/
var winform = win.form(text="改变按钮颜色示例";right=279;bottom=239;composited=1)
winform.add(
button={cls="button";text="点这里1";left=16;top=104;right=261;bottom=159;font=LOGFONT(h=-14);z=1};
button2={cls="button";text="点这里2";left=16;top=168;right=261;bottom=223;font=LOGFONT(h=-14);z=3};
edit={cls="edit";text="Edit";left=16;top=16;right=264;bottom=96;edge=1;multiline=1;z=2}
)
/*}}*/
import raw.apiHook
raw.apiHook(
    "user32.dll",
    "DrawTextExW",
    "int(ptr,ptr,int,ptr,int,ptr)", 
    function(hdc,lpchText,cchText,rect,format,lpdtp){
        var str = ..string.fromUtf16(..raw.str(lpchText,true));
        if str="点这里1" ::Gdi32.SetTextColor(hdc,0x0000FF);
        elseif str="点这里2" ::Gdi32.SetTextColor(hdc,0xFF0000);
        owner.callApi(hdc,lpchText,cchText,rect,format,lpdtp); 
        return true;
    }
).install();
winform.show();
win.loopMessage();
import win.ui;
/*DSG{{*/
var winform = win.form(text="改变按钮颜色示例";right=279;bottom=239;composited=1)
winform.add(
button={cls="button";text="点这里1";left=16;top=104;right=261;bottom=159;font=LOGFONT(h=-14);z=1};
button2={cls="button";text="点这里2";left=16;top=168;right=261;bottom=223;font=LOGFONT(h=-14);z=3};
edit={cls="edit";text="Edit";left=16;top=16;right=264;bottom=96;edge=1;multiline=1;z=2}
)
/*}}*/
import raw.apiHook
raw.apiHook(
    "user32.dll",
    "DrawTextExW",
    "int(ptr,ptr,int,ptr,int,ptr)", 
    function(hdc,lpchText,cchText,rect,format,lpdtp){
        var str = ..string.fromUtf16(..raw.str(lpchText,true));
        if str="点这里1" ::Gdi32.SetTextColor(hdc,0x0000FF);
        elseif str="点这里2" ::Gdi32.SetTextColor(hdc,0xFF0000);
        var rc = ::RECT();
        ..raw.convert(rect,rc);
        rc.right-=100;
        gdi.fillRect(hdc,0x00FF00,rc);
        owner.callApi(hdc,lpchText,cchText,rect,format,lpdtp); 
        return true;
    }
).install();
winform.show();
win.loopMessage();


http://www.kler.cn/a/466071.html

相关文章:

  • java项目之校园管理系统的设计与实现(源码+文档)
  • [python3]Excel解析库-xlutils
  • Flutter 实现 列表滑动过程控件停靠效果 学习
  • win10 npm login 登陆失败
  • windows终端conda activate命令行不显示环境名
  • 如何在 VSCode 中配置 C++ 开发环境:详细教程
  • Node.js应用程序遇到了内存溢出的问题
  • IP5385应用于移动电源快充方案的30W到100W大功率电源管理芯片
  • 服务器开发 的编程环境(programming environment)核心知识
  • Linux下部署ElasticSearch集群
  • 基于SpringBoot和Thymeleaf的仿小米电商系统源码下载与安装指南-幽络源
  • Win11+WLS Ubuntu 鸿蒙开发环境搭建(二)
  • DVWA靶场文件上传漏洞全级别通关及源码深度解析
  • 使用rknn进行yoloV8部署(C++)
  • 六种主流服务器的选择与使用
  • 【机器学习】由浅入深学习网格搜索
  • 158页精品PPT | 大型研发制造集团信息化IT规划整体方案
  • React 中结合 antd 的 Input 组件实现防抖输入
  • C# 在PDF中添加和删除水印注释 (Watermark Annotation)
  • nginx配置 - 资源参数配置(性能优化)
  • VSCode下配置Blazor环境 断点调试Blazor项目
  • 深入浅出 Vue 3:新特性与最佳实践
  • STM32-BKP备份寄存器RTC实时时钟
  • nginx高可用集群搭建
  • primevue的<Menu>组件
  • MYSQL------sql基础