Board logo

标题: [特效代码] 批处理如何调用capi绘图? [打印本页]

作者: 无名小卒    时间: 2015-6-4 13:59     标题: 批处理如何调用capi绘图?

希望可以清楚上一次绘图的图片,
  1. @echo off
  2. CAPI
  3. mode con: cols=40 lines=20
  4. set CAPI=API Call user32 LoadImageW ;0 $6.ico ;1 ;0 ;0 ;16
  5. set hIcont=%CAPI_Ret%
  6. set CAPI=API Call kernel32 GetConsoleWindow
  7. set hCMD=%CAPI_Ret%
  8. set CAPI=API Call user32 GetDC ;%hCMD%
  9. set hDC=%CAPI_Ret%
  10. set CAPI=API Call gdi32 CreateCompatibleDC ;%hDC%
  11. set hDCMem=%CAPI_Ret%
  12. set CAPI=API Call gdi32 CreateCompatibleBitmap ;%hDC% ;500 ;352
  13. set hBMPMem=%CAPI_Ret%
  14. set CAPI=API Call gdi32 SelectObject ;%hDCMem% ;%hBMPMem%
  15. set x=0
  16. set y=0
  17. set m=320
  18. set CAPI=API Call gdi32 Rectangle ;%hDCMem% ;0 ;0 ;320 ;342
  19. :loop
  20. set CAPI=API Call gdi32 Rectangle ;%hDCMem%  ;0 ;0 ;64 ;%y%
  21. set CAPI=API Call user32 DrawIconEx ;%hDCMem% ;%x% ;%y% ;%hIcont% ;64 ;32  ;0 ;0 ;3
  22. set CAPI=API Call gdi32 BitBlt ;%hDC% ;0 ;0 ;320 ;342 ;%hDCMem% ;0 ;0 ;13369376
  23. CAPI Call kernel32 Sleep #3
  24. set /a y+=4
  25. if "%y%" == "%m%" (
  26. set /a  m=%m%-32
  27. set x=0
  28. set y=0
  29. )
  30. goto loop
复制代码
可是但我改变 Rectangle 想清除上一个方块时修改成

set CAPI=API Call gdi32 Rectangle ;%hDCMem%  ;%x% ;%y% ;64 ;32
却不是我我要的结果,我希望可以清除像开始那样,清除上一次的图片,表达不好,见谅,有大神有办法吗?
作者: a20150604    时间: 2015-6-4 16:20

CAPI 是什么, 楼主怎么不给别人一个下载地址
作者: 无名小卒    时间: 2015-6-4 17:34

回复 2# a20150604


    一个第三方,论坛搜索就可以找到了,我就不找下载地址了😝
作者: bailong360    时间: 2015-6-4 18:43

清除上一次绘制的图片?
再创建一个画布用于备份吧




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2