日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CorelDRAWX4的VBA插件开发(十五)选择分辨率一键导出多张图片到桌面

發布時間:2023/12/9 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CorelDRAWX4的VBA插件开发(十五)选择分辨率一键导出多张图片到桌面 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 這次來講怎么樣做一個可以選擇想要的分辨率或者直接輸入某個分辨率,然后一鍵導出已經選中的所有形狀到桌面,這一節也是第十一節內容的升級,希望先看了十一節再到這里接著進行

  • 首先我們回到我們之前創建的面板上來, (如果不知道這個面板在哪可以在第十一節里面查看),我們雙擊打開這個面板以后再打開工具箱,然后把復合框拉拽到面板上來

  • 新建拖拽一個按鈕,然后再把他的標題caption修改成"導出多張圖片"

  • 右鍵選擇查看代碼進入面板的代碼界面

  • 在上方的userform選項的右側選擇initialize,就會自動生成面板的初始化函數功能,也就相當于在這個面板在內存中被創建的時候會自動執行這里面的代碼,所以,我們就用來把這個復選框里面加上幾行分辨率的數字

Private Sub UserForm_Initialize()Me.ComboBox1.AddItem ("300")Me.ComboBox1.AddItem ("400")Me.ComboBox1.AddItem ("500")Me.ComboBox1.AddItem ("600")Me.ComboBox1.AddItem ("100") End Sub
  • 然后我回到面板的左下角屬性, 這里可以看到一個showModal的選項,叫做模態,為true的時候,這個彈窗必須被關閉才能回到主界面. 而為false的時候面板并不會干擾主界面. 這是一個非常重要的功能,因為我們希望把這個窗口一直停留在屏幕上,所以我們一般來說要選擇false. (題外話:模態窗口一般是用構造函數創建,而非模態的對話框是在堆區new創建) 我們大概了解就行了.
  • 進入tool多文件添加功能(函數)
'選中對象分別導出JPG到桌面 Sub AllToJpg(Optional resolution As Integer = 400)Dim OrigSelection As ShapeRangeSet OrigSelection = ActiveSelectionRangeDim theCount As Integer: theCount = 1For Each Item In OrigSelectionItem.CreateSelectionDim expflt As ExportFilterSet expflt = ActiveDocument.ExportBitmap("F:\Users\Administrator\Desktop\" & CorelDRAW.CorelScriptTools.FormatTime(VBA.DateTime.Now, "HH-mm-ss") & theCount & ".jpg", cdrJPEG, cdrSelection, cdrCMYKColorImage, 0, 0, resolution, resolution, cdrNormalAntiAliasing, False, False, True, False, cdrCompressionNone)expflt.FinishtheCount = theCount + 1Next ItemEnd Sub

上面就是代碼, 是一個備用的導出到桌面的功能的功能函數,接下來就只需要調用即可

  • 雙擊"導出多張圖片"按鈕, 進入按鈕的鼠標點擊事件功能(功能就是函數),也就是當按鈕被點擊時所觸發的功能
Private Sub CommandButton2_Click()If ComboBox1.Value <> "" Thentool.AllToJpg ComboBox1.ValueElsetool.AllToJpgEnd If End Sub

當然 這個CommandButton2_Click是程序自動生成的,是這個按鈕的編號,我們直接往里面寫就可以了, click是鼠標點擊的的意思,前面的CommandButton2是按鈕的名字

  • 看一下效果

代碼釋義:
Optional 是默認的意思,也就是當我們調用的時候如果不帶參數時,允許程序使用默認參數,而后面的= 400就是默認參數, 而當我們帶了參數的時候(tool.AllToJpg ComboBox1.Value), 這個400就不會生效, 所以我們在調用的時候用了一個判斷, 當我們沒有選擇分辨率的時候調用的時候后面不帶參數(tool.AllToJpg)

Dim OrigSelection As ShapeRange這里在內存里設了一個名為OrigSelection 的ShapeRange對象, ShapeRange就是形狀集合,然后讓Set OrigSelection = ActiveSelectionRange讓OrigSelection 內部初始化為當前鼠標已經選擇好的集合.
后面的Dim theCount As Integer: theCount = 1是另設了一個整數,是防止我們多個圖片文件名會重復而使用的,一般情況下我已經使用了精確到秒的文件名,但我還是怕重名,所以又在后面加上一個序號來防止重名,我們在循環內部讓這個整數每執行一次自動+1theCount = theCount + 1,而Item.CreateSelection是每個形狀都執行一次選擇操作,這樣在后面的導出功能函數中,我們就可以直接選擇cdrSelection這個導出當前選擇內容的功能了.

Me.ComboBox1.AddItem ("300")這一句中的Me就是指的它所在的面板,combobox1是復選框自動生成的名字,AddItem 是往它內部添加東西."300"就是我們想要添加的字符串, 記得給字符串加上引號,&這個是連接字符串之間的符號

好了,十一節沒有講到的內容基本已經講完了

總結

以上是生活随笔為你收集整理的CorelDRAWX4的VBA插件开发(十五)选择分辨率一键导出多张图片到桌面的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。