这是主界面;
import win.ui;
import win;
import winex;
/*DSG{{*/
mainForm = win.form(text="截屏小工具 by 张灯结彩";right=500;bottom=300;bgcolor=0xC0DCC0)
mainForm.add(
button={cls="button";text="单击目标控件截屏";left=44;top=184;right=159;bottom=221;z=1};
picturebox={cls="picturebox";left=194;top=25;right=406;bottom=185;ah=1;autosize=1;aw=1;border=1;z=5};
static={cls="static";left=45;top=24;right=160;bottom=52;border=1;notify=1;transparent=1;z=2};
static2={cls="static";left=45;top=74;right=159;bottom=104;border=1;transparent=1;z=3};
static3={cls="static";left=44;top=127;right=158;bottom=157;border=1;transparent=1;z=4}
)
/*}}*/
var aa = mainForm.loadForm("\dlg\aaa.aardio");
var rcc =::RECT();
aa.modifyStyleEx(,0x00FF0000)
aa.show(3)
rcc=win.getRect(aa.hwnd,true)//获取初始全屏矩形区域
aa.show(false)
mainForm.button.oncommand = function(id,event){
aa.setRect(rcc); //恢复初始大小
aa.show(3)
mainForm.show(false);
};
import win.dlg.message;
var msgDlg = win.dlg.message(mainForm);
import gdip.snap;
//接收一个自定义消息
mainForm.wndproc = function(hwnd,message,wParam,lParam){
if(message==0x801){
var x,y = win.getMessagePos(lParam);
mainForm.static3.text = "屏幕坐标" ++ tostring(x) ++ ", " ++ tostring(y);
var 子窗口=winex.fromPointReal(x,y,0);//获取子窗口/控件句柄
aa.autoResize = false;
var rc =win.getRect(子窗口,true) //获取子窗口区域
aa.setRect(rc);
aa.show();
mainForm.static.text='子窗口句柄:'+tostring(子窗口);
mainForm.static2.text='父窗口句柄:'+tostring(::User32.GetAncestor(子窗口, 2/*_GA_ROOT*/));//顶层父窗口句柄
//弹出是否截屏选择
if( msgDlg.ask("是否截屏?") ){
//对rc截屏并展示
win.delay(100);
// 截取指定区域屏幕图像
aa.show(false);
var bitmap = gdip.snap(,rc);
if(bitmap){
// 显示截图
mainForm.picturebox.image=bitmap;
// 复制到剪贴板
import win.clip.bitmap;
win.clip.bitmap.write(bitmap);
}
else {
msgDlg.err("截图失败");
}
mainForm.show();
}
else {
aa.show(false);
mainForm.show();
}
}
};
mainForm.show();
return win.loopMessage();
这是弹窗aaa
import win.ui;
/*DSG{{*/
var aa = win.form(text="aardio form";right=757;bottom=467;bgcolor=0xF0CAA6;border="none";exmode="toolwindow";hide=true;mode="popup";title=false)
aa.add(
borderBottom={cls="static";left=0;top=462;right=1;bottom=463;bgcolor=0xFF;edge=1;z=4};
borderLeft={cls="static";left=0;top=0;right=5;bottom=467;bgcolor=0xFF;edge=1;z=1};
borderRight={cls="static";left=752;top=0;right=753;bottom=467;bgcolor=0xFF;edge=1;z=3};
borderTop={cls="static";left=0;top=0;right=752;bottom=5;bgcolor=0xFF;edge=1;z=2}
)
/*}}*/
aa.onActivate = function(state,hwndOther,minimized){
if(state){
aa.transparent(80); //半透明
}
}
aa.onMouseDown = function(wParam,lParam){
aa.show(false);
//发一个自定义消息
::User32.PostMessage(aa.parent.hwnd, 0x801, wParam,lParam ); // 发送自定义消息,lParam传递鼠标位置
}
aa.wndproc = function(hwnd,message,wParam,lParam){
if(message==0x5){
var width = lParam & 0xFFFF; // 获取新宽度
var height = (lParam >> 16) & 0xFFFF; // 获取新高度
// 更新边框控件位置
// 更新边框控件(保留5像素边框)
aa.borderTop.right = width;
aa.borderBottom.right = width;
aa.borderBottom.top = height - 5;
aa.borderLeft.bottom = height;
aa.borderRight.left = width - 5;
aa.borderRight.bottom = height;
}
}
win.loopMessage();

现在用四个静态控件当边框用,请大佬改一改能不能用简单的方法实现?用gdip、plus没搞成功。