Sfoglia il codice sorgente

CorelDRAW CPG 源码 C++ 使用 CQL 方法

蘭雅sRGB 8 mesi fa
parent
commit
b74ad273a9

+ 25 - 8
05_ToolsBox_CreateDialog/ToolsBox.cpp

@@ -1,4 +1,5 @@
-#include <windows.h>
+#include <cstdio>
+#include <windows.h>
 #include "resource.h"
 
 #import "VGCoreAuto.tlb" \
@@ -6,6 +7,8 @@ rename("GetCommandLine", "VGGetCommandLine") \
 rename("CopyFile", "VGCore") \
 rename("FindWindow", "VGFindWindow")
 
+using namespace VGCore;
+
 static HINSTANCE g_hResource = NULL;
 
 BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
@@ -199,17 +202,31 @@ INT_PTR CALLBACK ToolsBoxPlugin::DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LP
         try {
             switch (LOWORD(wParam)) {
             case IDC_NEWDOC:
-                cdr->CreateDocument();
-                EndDialog(hDlg, IDC_NEWDOC);
+                {
+                // sr.ApplyUniformFill CreateCMYKColor(0, 100, 100, 0)
+                auto sr = cdr->ActiveSelectionRange;
+                auto red = cdr->CreateCMYKColor(0, 100, 100, 0);
+                sr->ApplyUniformFill(red);
+                }
+
                 break;
 
             case IDC_LASTDOC:
-                if (cdr->RecentFiles->Count > 0) {
-                    cdr->OpenDocument(cdr->RecentFiles->Item[1]->FullName, 0);
-                } else {
-                    MessageBox(NULL, "No documents were editied yet.", "Error", MB_ICONSTOP);
+                {
+                auto red = cdr->CreateCMYKColor(0, 100, 100, 0);
+                red->ConvertToRGB();
+                auto r = red->RGBRed;
+                auto g = red->RGBGreen;
+                auto b = red->RGBBlue;
+
+                char buf[256] = { 0 };
+                sprintf(buf, "@Outline.Color.rgb[.r='%d' And .g='%d' And .b='%d']" , r, g, b );
+                auto cql = _bstr_t(buf);
+               // MessageBox(NULL, cql, "cql 红色轮廓", MB_ICONSTOP);
+                auto sr = cdr->ActivePage->Shapes->FindShapes(_bstr_t(),cdrNoShape,VARIANT_TRUE, cql);
+                sr->CreateSelection();
                 }
-                EndDialog(hDlg, IDC_LASTDOC);
+
                 break;
 
             case IDC_CLEAR_FILL:

+ 2 - 2
05_ToolsBox_CreateDialog/ToolsBox.rc

@@ -19,8 +19,8 @@ STYLE DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_POPUP | WS_SYSMENU
 CAPTION "Tools Box"
 FONT 8, "MS Shell Dlg", 400, 0, 1
 {
-    PUSHBUTTON      "New Document", IDC_NEWDOC, 7, 7, 68, 24, 0, WS_EX_LEFT
-    PUSHBUTTON      "Last Document", IDC_LASTDOC, 88, 7, 68, 24, 0, WS_EX_LEFT
+    PUSHBUTTON      "Ìî³äºìÉ«", IDC_NEWDOC, 7, 7, 68, 24, 0, WS_EX_LEFT
+    PUSHBUTTON      "CQLÑ¡Ôñ", IDC_LASTDOC, 88, 7, 68, 24, 0, WS_EX_LEFT
     PUSHBUTTON      "ÎÞÌîÉ«", IDC_CLEAR_FILL, 7, 38, 68, 24, 0, WS_EX_LEFT
     PUSHBUTTON      "ÅúÁ¿¾µÏñ", IDC_SR_FLIP, 89, 39, 68, 24, 0, WS_EX_LEFT
 }

+ 25 - 0
05_ToolsBox_CreateDialog/lycpg64_build_log.html

@@ -0,0 +1,25 @@
+<html>
+<head>
+<title>lycpg64构建日志</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
+<body>
+<tt>
+开始构建:<u>20-06-2024 at 17:44.02</u><br />
+构建结束于:<u>20-06-2024 at 17:44.03</u><p />
+<b>-------------- 构建: Release 在 lycpg64 中 (编译器: Microsoft Visual C++ 2022)---------------</b><br />
+cl.exe /nologo /W3 /EHsc  /Ox /DNDEBUG    /I..\TypeLibs /IC:\MSVC2022\include /IC:\Users\vip\Desktop\05_ToolsBox_CreateDialog /c ToolsBox.cpp /Foobj\Release\ToolsBox.obj<br />
+rc.exe /IC:\MSVC2022\include /IC:\Users\vip\Desktop\05_ToolsBox_CreateDialog  -foobj\Release\ToolsBox.res ToolsBox.rc<br />
+ToolsBox.cpp<br />
+Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384<br />
+Copyright (C) Microsoft Corporation.  All rights reserved.<br />
+<font color="#0000ff">ToolsBox.cpp(190): warning C4311: “类型强制转换”: 从“HWND”到“LONG”的指针截断</font><br />
+<font color="#0000ff">ToolsBox.cpp(190): warning C4302: “类型强制转换”: 从“HWND”到“LONG”截断</font><br />
+<font color="#0000ff">ToolsBox.cpp(223): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.</font><br />
+link.exe /dll /nologo /LIBPATH:C:\MSVC2022\lib /out:bin\Release\lycpg64.dll Gdi32.lib user32.lib Kernel32.lib obj\Release\ToolsBox.obj  obj\Release\ToolsBox.res<br />
+  正在创建库 bin\Release\lycpg64.lib 和对象 bin\Release\lycpg64.exp<br />
+输出文件为 bin\Release\lycpg64.dll,大小为 153.50 KB<br />
+<font color="#0000ff">程序退出, 返回状态码:0 (0 分, 0 秒)</font><br />
+<font color="#0000ff">0个错误, 3个警告 (0 分, 0 秒)</font><br />
+</tt>
+</body>
+</html>