gapkiller 发表于 2009-12-21 09:51:46

au3画画板,但是闪得厉害,不知道如何解决...

本帖最后由 gapkiller 于 2010-1-22 14:34 编辑

由于调用了GuiCtrlSetGraphic($id, $GUI_GR_REFRESH),所以会闪
想要达到下面的效果,不知道还有没有别的方法....#include <GuiConstantsEX.au3>
#Include <Misc.au3>

GUICreate("",@DesktopWidth,@DesktopHeight,0,0,0x80000000)
GUISetBkColor(0x00FFFF)
$btn_quit = GUICtrlCreateButton(" &Quit ",@DesktopWidth/2-100,@DesktopHeight*3/4)
$btn_clear = GUICtrlCreateButton("&Clear",@DesktopWidth/2+50,@DesktopHeight*3/4)
GUICtrlCreateGraphic(0,0)
GUICtrlSetGraphic(-1,$GUI_GR_COLOR,0xFF0000)
GUICtrlSetGraphic(-1,$GUI_GR_PENSIZE,4)

GUISetState()

While 1
        $msg = GUIGetMsg()
        Switch $msg
        Case -7                                ;-- left btn down
                $pos = MouseGetPos()
                GUICtrlSetGraphic(-1,$GUI_GR_MOVE,$pos,$pos)
                While 1
                        $pos = MouseGetPos()
                        GUICtrlSetGraphic(-1,$GUI_GR_LINE,$pos,$pos)
                        $msg = GUIGetMsg()
                        Switch $msg
                                Case -11        ; mouse move
                                        GUICtrlSetGraphic(-1,$GUI_GR_REFRESH)
                                Case $btn_quit
                                        Exit
                                Case $btn_clear
                                        GUICtrlDelete(-1)
                                        GUICtrlCreateGraphic(0,0)
                                        GUICtrlSetGraphic(-1,$GUI_GR_COLOR,0xFF0000)
                                        GUICtrlSetGraphic(-1,$GUI_GR_PENSIZE,4)
                                        ExitLoop
                                Case -8         ; left btn up
                                        ExitLoop
                        EndSwitch
                WEnd
        Case -9            ; right btn down
                $APIColor = _ChooseColor(2,0,2)
                GUICtrlSetGraphic(-1,$GUI_GR_COLOR,$APIColor)
        Case $btn_quit
                Exit
        Case $btn_clear
                GUICtrlDelete(-1)
                GUICtrlCreateGraphic(0,0)
                GUICtrlSetGraphic(-1,$GUI_GR_COLOR,0xFF0000)
                GUICtrlSetGraphic(-1,$GUI_GR_PENSIZE,4)
        EndSwitch
WEnd

gapkiller 发表于 2009-12-21 14:17:27

或者有什么API可以调用画画板界面??

sanmoking 发表于 2009-12-23 16:26:41

这个得留名,用在截图并标注的时候....

gapkiller 发表于 2009-12-23 18:48:31

这个得留名,用在截图并标注的时候....
sanmoking 发表于 2009-12-23 16:26 http://www.autoitx.com/images/common/back.gif

截图并标注??

sanmoking 发表于 2009-12-24 09:37:31

截图并标注??
gapkiller 发表于 2009-12-23 18:48 http://www.autoitx.com/images/common/back.gif


    制作截图软件的时候,截完之后可以直接在图片上用鼠标画一些标注....

gapkiller 发表于 2009-12-24 09:40:23

制作截图软件的时候,截完之后可以直接在图片上用鼠标画一些标注....
sanmoking 发表于 2009-12-24 09:37 http://www.autoitx.com/images/common/back.gif

.....
给一些有建设性的意见撒...

sanmoking 发表于 2009-12-24 09:49:34

我解决不了你说的闪的现象,我的意思是你的这个东西可以用到截图工具中....

gapkiller 发表于 2009-12-24 10:34:04

我解决不了你说的闪的现象,我的意思是你的这个东西可以用到截图工具中....
sanmoking 发表于 2009-12-24 09:49 http://www.autoitx.com/images/common/back.gif


    -_-!
伤心啊, 画多了就会闪.....

gapkiller 发表于 2010-1-22 14:22:55

原来调用GDI可以搞定~~~
好开心啊
分享一下`~
页: [1]
查看完整版本: au3画画板,但是闪得厉害,不知道如何解决...