
#演示在屏幕上画图

#预处理函数: 可配置 MKScript 脚本加载后自动运行
#mkscript_config_auto_start()

t1:

#刷新屏幕:这玩意会闪一下
invalidate_rect(0, 0, 0, 0, 0, mkFalse)

#刷新屏幕:这玩意闪的稍微好一些?
#window_redraw(window_get_desktop(), 0, 0, 0, 0, mkRDW_ERASE | mkRDW_INVALIDATE | mkRDW_ALLCHILDREN)

#暂停 0.5 秒
sleep(500)

#获取屏幕DC
int hdc = get_dc(mkNull)

#创建画笔
int pen = create_pen(mkPS_SOLID, 1, rgb(255, 0, 0))

#指定背景色
#int br = create_solid_brush(rgb(255, 255, 0))

#画透明背景的矩形
int br = get_stock_object(mkNULL_BRUSH)

#设置画笔和画刷
int oldPen = select_object(hdc, pen)
int oldBr = select_object(hdc, br)

#画矩形
rectangle(hdc, 50, 50, 200, 200)

#画矩形
rectangle(hdc, 300, 50, 500, 200)

#画圆
ellipse(hdc, 50, 50, 200, 200)

#画椭圆
ellipse(hdc, 300, 200, 500, 50)

#画圆角矩形
round_rect(hdc, 600, 50, 800, 300, 15, 15)


#设置填充色
int br2 = get_stock_object(mkGRAY_BRUSH)

#画一个填充矩形
fill_rect(hdc, 900, 50, 1000, 100, br2)


#绘制弧线、弦割线、饼图
arc(hdc, 10, 30, 40, 50, 40, 30, 10, 40)
chord(hdc, 10, 60, 40, 80, 40, 60, 10, 70)
pie(hdc, 10, 90, 40, 110, 40, 90, 10, 100)

#画线
line(hdc, 500, 500, 800, 800)
line(hdc, 300, 500, 1000, 100)



#画曲线
DrawCurve(hdc, 20, 300, 10)


#恢复
select_object(hdc, oldPen)
select_object(hdc, oldBr)

#释放资源
delete_object(pen)

#delete_object(br)

#释放 DC
release_dc(mkNull, hdc)


#刷新整个屏幕
#invalidate_rect(0, 0, 0, 0, 0, mkFalse)

pause(0)

goto t1



#画曲线
func void DrawCurve(int hdc, double da, double dx, double doo)

    double x,y,x0,y0

    double pi = 3.14159254
     
     #创建画笔: 蓝色
    int pen = create_pen(mkPS_SOLID, 1, rgb(0, 0, 255))

       #设置画笔和画刷
    int oldPen = select_object(hdc, pen)
       
    for x = 1000 to 1359

        x0 = x - 1
        y0 = da * sin(x0/doo) + dx
        
        y = da * sin(x/doo) + dx
        
        line(hdc, x0, y0, x, y)

    next

    #恢复
    select_object(hdc, oldPen)

endfunc

