aardio 文档

aardio 范例: 窗口背景贴图

//背景贴图
import win.ui;
/*DSG{{*/
var winform = win.form(text="窗口背景贴图";right=759;bottom=469)
winform.add(
bk={cls="bk";text="无窗口贴图控件";left=563;top=70;right=736;bottom=408;bgcolor=65535;z=3};
plus={cls="plus";left=72;top=66;right=498;bottom=288;bgcolor=32768;z=1};
plus2={cls="plus";left=14;top=164;right=440;bottom=386;bgcolor=8421504;z=2}
)
/*}}*/

/*
使用此事件可以直接将背景画到缓存好的位图上以后,由aardio一次输出,
如果不是经常变动的图像,直接画到背景上可以避免添加多余的控件窗口,避免窗口间的重叠干扰导致的问题。
*/
import gdip.graphics;
var bmp = com.picture.loadBitmap("~\extensions\wizard\project2\forms\images\winform.jpg");
winform.onDrawBackground  = function(hdc,rc){
    gdi.fillRect(hdc,0x00008C,rc.copy(,150));
    gdi.fillRect(hdc,0x468C00,rc.copy(200));

    //九宫格贴图
    gdi.drawBitmap(hdc,bmp,rc.move(200,150),140,140,100,225);

    var font = ::LOGFONT(weight=400;point=9;color=0xFF);
    gdi.drawTextCenter(hdc,font,"改变窗口大小试试,任意位置贴图都可以支持九宫格",rc.move(120,150));
}

/*
用下面的函数让plus直接绘图到窗口背景上
*/
winform.plus.directDrawBackgroundOnly();

winform.plus2.background = 0x90808080;
winform.plus.background = 0x90008000;

winform.disableDragFullWindow = false;

winform.show();
win.loopMessage();
Markdown 格式