通过对窗口获得和失去激活(active)状态来改变窗口颜色

By admin at 2021-11-01 • 0人收藏 • 537人看过

screenshots.gif

顺便说下, 这个gif使用jacenHe老大写的那个[图形图像]->[GIF录制]的范例录制

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=777;bottom=434)
winform.add(
bk={cls="bk";left=39;top=36;right=754;bottom=124;bgcolor=8421376;z=1};
button={cls="button";text="Button";left=51;top=317;right=312;bottom=395;z=2};
button2={cls="button";text="Button";left=359;top=317;right=570;bottom=371;z=3};
edit={cls="edit";text="当窗口被激活的时候, 上面的颜色会变红, 窗口失去激活状态变蓝";left=52;top=192;right=759;bottom=280;edge=1;multiline=1;z=4}
)
/*}}*/

var activeFlag = false;
winform.show();
win.loopMessage(
	function(){
		if(win.getForeground()==winform.hwnd){
			if(!activeFlag){
				winform.bk.bgcolor = 0x5566cc;
				winform.bk.redraw();
				activeFlag = true;	
			}
		}else {
			if(activeFlag){
				winform.bk.bgcolor = 8421376;
				winform.bk.redraw();
				activeFlag = false;	
			}
		}	
	}	
);


3 个回复 | 最后更新于 2021-11-02
2021-11-01   #1

其实使用 winform.onActivate 就行

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add(
bk={cls="bk";left=96;top=51;right=687;bottom=84;z=1}
)
/*}}*/

winform.onActivate = function(state,hwndOther,minimized){
	winform.bk.bgcolor = state ? 0x8BACFF : 0xFC8BAC;
	winform.bk.redraw()
}

winform.show();
win.loopMessage();


2021-11-01   #2

回复#1 @nlysh007 :

我之前console.log(state) , 发现只有两个状态1/2 , 没想到还有一个lose是null

2021-11-01   #3

回复#2 @admin :

state的值

		0/*_WA_INACTIVE*/
		1/*_WA_ACTIVE*/
		2/*_WA_CLICKACTIVE*/


登录后方可回帖

登 录
信息栏
公 告:

专注分享

谢绝纯提问

谢谢合作!
本站域名:HtmLayout.Cn
aardio可以快速开发上位机,本站主要记录了学习过程中遇到的问题和解决办法及aardio代码分享

这里主要专注于aardio学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.

Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
本 站 主 站:Stm32cube中文网
Sciter中文在线文档Sciter在线学习文档
空间赞助:才仁机械
打赏本站
Loading...