炫酷的“鼠标光标”

By o3o_o3o_o3o at 2021-10-01 • 0人收藏 • 968人看过

这是我很久以前做的程序,其中copy了一点范例程序的部分。今天有闲时间,我把它修改了一下:

import win.ui;
/*DSG{{*/
var winform = win.form(text="歌词效果演示";right=339;bottom=141;border="none";exmode="toolwindow";mode="popup")
winform.add()
/*}}*/

import win.ui.glass;
import gdi;
import gdip; 
drawAlphaText =function( strText,fontsize= 35,fontname="Verdana"  ){
	gdi.layeredBuffer( winform.hwnd, 
    	function( hdc,hMemDc,hMemBitmap,width,height ){
			var graphics = gdip.graphics(hMemDc)  
			graphics.smoothingMode = 4/*_GdipSmoothingModeAntiAlias*/; 
			var pen = gdip.pen(0xFF222222, 2,2/*_GdipUnitPixel*/ );
			var brush = gdip.lineBrush( ::POINTF(10,10), ::POINTF(100,100), 0xFFFFFF00, 0xFF00FFFF)
			var family = gdip.family( fontname ); 
			var strformat = gdip.stringformat(); 
			strformat.align =1/*_GdipStringAlignmentCenter*/; 
			var rclayout = ::RECTF( , ,width,height);
			var path = gdip.path( 0/*_GdipFillModeAlternate*/ ); 
			path.addstring(strText, family,1/*_GdipFontStyleBold*/, fontsize, rclayout, strformat);
			graphics.fillPath( brush, path) 
			graphics.drawPath( pen, path) 
			brush.delete();
			pen.delete();
			strformat.delete();
			family.delete();
			path.delete();
			graphics.delete();    
        	gdi.updateLayeredWindow( winform.hwnd,hMemDc,::SIZE(width,height) ,gdi.blendFunction(130/*透明度*/)  ); 
    	}
	)  
}
var o = 0;
import key.hook;
var hook = key.hook(); 
hook.proc = function(msg,vkcode,scancode,injected,flags,timeStamp,extraInfo){
	if( injected ) return;	 
    var kn = key.getName( vkcode );
    select(msg) {
    	case 0x100/*_WM_KEYDOWN*/ ,0x104/*_WM_SYSKEYDOWN*/{
    	    if(kn == "MEDIA_PLAY_PAUSE"){
    	        winform.close()
    	    }
    	} 
    }
}
winform.onClose = function(hwnd,message,wParam,lParam){
    hook.close();
}
import mouse;
var hwnd = winform.hwnd; 
winform.transparent(true);  
drawAlphaText("⚪"/*这里可以替换*/,55/*大小*/ )
var width,height = winform.width,winform.height; 
winform.show(true)
win.ui.glass(winform)
while(winform.valid){
	var cx,cy = mouse.getPos();
	winform.setPos(cx-width/2,cy-height/2+34,,,-1/*_HWND_TOPMOST*/)
	win.delay(10)
}

win.loopMessage();

效果:

g.PNG

登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...