Skip to content

如何调用WPS自己的对话框 ​

基本语法 ​

调用方式 ​

javascript
ocxObj.ActiveDocument.Application.Dialogs(dialogNumber).Show()

参数说明 ​

  • ocxObj:控件对象实例
  • dialogNumber:对话框编号,对应不同的WPS内置对话框

Word对话框编号对照表 ​

帮助和关于对话框 ​

对话框名称编号说明
wdDialogHelpAbout9关于对话框

文件操作对话框 ​

对话框名称编号说明
wdDialogFileNew79新建文件对话框
wdDialogFileOpen80打开文件对话框
wdDialogFileSaveAs84另存为对话框
wdDialogFilePrint88打印对话框
wdDialogFilePrintSetup97打印设置对话框
wdDialogFilePageSetup178页面设置对话框

编辑操作对话框 ​

对话框名称编号说明
wdDialogFileFind99查找对话框
wdDialogEditFind112查找对话框
wdDialogEditReplace117替换对话框
wdDialogEditGoTo896定位对话框
wdDialogEditGoToOld811旧版定位对话框
wdDialogEditPasteSpecial111选择性粘贴对话框

插入操作对话框 ​

对话框名称编号说明
wdDialogInsertBreak159插入分页符对话框
wdDialogInsertSymbol162插入符号对话框
wdDialogInsertPicture163插入图片对话框
wdDialogInsertFile164插入文件对话框
wdDialogInsertDateTime165插入日期时间对话框
wdDialogInsertField166插入域对话框
wdDialogInsertBookmark168插入书签对话框
wdDialogInsertHyperlink925插入超链接对话框
wdDialogInsertTableOfContents171插入目录对话框
wdDialogInsertPageNumbers294插入页码对话框
wdDialogInsertCaption357插入题注对话框
wdDialogInsertFootnote370插入脚注对话框

表格操作对话框 ​

对话框名称编号说明
wdDialogTableInsertTable129插入表格对话框
wdDialogTableDeleteCells133删除单元格对话框
wdDialogTableFormatCell612表格单元格格式对话框

格式设置对话框 ​

对话框名称编号说明
wdDialogFormatFont174字体格式对话框
wdDialogFormatParagraph175段落格式对话框
wdDialogFormatColumns177分栏对话框
wdDialogFormatTabs179制表位对话框
wdDialogFormatStyle180样式对话框
wdDialogFormatBordersAndShading189边框和底纹对话框
wdDialogFormatDropCap488首字下沉对话框
wdDialogFormatEncloseCharacters1162带圈字符对话框

工具和选项对话框 ​

对话框名称编号说明
wdDialogToolsWordCount228字数统计对话框
wdDialogToolsBulletsNumbers196项目符号和编号对话框
wdDialogToolsOptionsGeneral203常规选项对话框
wdDialogToolsOptionsView204视图选项对话框
wdDialogToolsAdvancedSettings206高级设置对话框
wdDialogToolsOptionsPrint208打印选项对话框
wdDialogToolsOptionsSave209保存选项对话框
wdDialogToolsOptionsSpellingAndGrammar211拼写和语法选项对话框
wdDialogToolsOptionsUserInfo213用户信息选项对话框
wdDialogToolsOptionsEdit224编辑选项对话框
wdDialogToolsOptionsFileLocations225文件位置选项对话框
wdDialogToolsAutoCorrect378自动更正对话框

视图和显示对话框 ​

对话框名称编号说明
wdDialogViewZoom577显示比例对话框
wdDialogDrawSnapToGrid633绘图网格对话框

其他对话框 ​

对话框名称编号说明
wdDialogFormatChangeCase322更改大小写对话框
wdDialogTCSCTranslator1156繁简转换对话框

使用示例 ​

基本调用示例 ​

javascript
// 调用关于对话框
function showAboutDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(9).Show();
        console.log("关于对话框已显示");
    } catch (error) {
        console.error("显示关于对话框失败:", error);
    }
}

// 调用新建文件对话框
function showNewFileDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(79).Show();
        console.log("新建文件对话框已显示");
    } catch (error) {
        console.error("显示新建文件对话框失败:", error);
    }
}

// 调用打开文件对话框
function showOpenFileDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(80).Show();
        console.log("打开文件对话框已显示");
    } catch (error) {
        console.error("显示打开文件对话框失败:", error);
    }
}

// 调用另存为对话框
function showSaveAsDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(84).Show();
        console.log("另存为对话框已显示");
    } catch (error) {
        console.error("显示另存为对话框失败:", error);
    }
}

// 调用打印对话框
function showPrintDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(88).Show();
        console.log("打印对话框已显示");
    } catch (error) {
        console.error("显示打印对话框失败:", error);
    }
}

查找和替换对话框 ​

javascript
// 调用查找对话框
function showFindDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(112).Show();
        console.log("查找对话框已显示");
    } catch (error) {
        console.error("显示查找对话框失败:", error);
    }
}

// 调用替换对话框
function showReplaceDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(117).Show();
        console.log("替换对话框已显示");
    } catch (error) {
        console.error("显示替换对话框失败:", error);
    }
}

// 调用定位对话框
function showGoToDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(896).Show();
        console.log("定位对话框已显示");
    } catch (error) {
        console.error("显示定位对话框失败:", error);
    }
}

插入操作对话框 ​

javascript
// 调用插入符号对话框
function showInsertSymbolDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(162).Show();
        console.log("插入符号对话框已显示");
    } catch (error) {
        console.error("显示插入符号对话框失败:", error);
    }
}

// 调用插入图片对话框
function showInsertPictureDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(163).Show();
        console.log("插入图片对话框已显示");
    } catch (error) {
        console.error("显示插入图片对话框失败:", error);
    }
}

// 调用插入超链接对话框
function showInsertHyperlinkDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(925).Show();
        console.log("插入超链接对话框已显示");
    } catch (error) {
        console.error("显示插入超链接对话框失败:", error);
    }
}

// 调用插入表格对话框
function showInsertTableDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(129).Show();
        console.log("插入表格对话框已显示");
    } catch (error) {
        console.error("显示插入表格对话框失败:", error);
    }
}

格式设置对话框 ​

javascript
// 调用字体格式对话框
function showFontDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(174).Show();
        console.log("字体格式对话框已显示");
    } catch (error) {
        console.error("显示字体格式对话框失败:", error);
    }
}

// 调用段落格式对话框
function showParagraphDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(175).Show();
        console.log("段落格式对话框已显示");
    } catch (error) {
        console.error("显示段落格式对话框失败:", error);
    }
}

// 调用页面设置对话框
function showPageSetupDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(178).Show();
        console.log("页面设置对话框已显示");
    } catch (error) {
        console.error("显示页面设置对话框失败:", error);
    }
}

工具和选项对话框 ​

javascript
// 调用字数统计对话框
function showWordCountDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(228).Show();
        console.log("字数统计对话框已显示");
    } catch (error) {
        console.error("显示字数统计对话框失败:", error);
    }
}

// 调用选项对话框
function showOptionsDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(203).Show();
        console.log("选项对话框已显示");
    } catch (error) {
        console.error("显示选项对话框失败:", error);
    }
}

// 调用自动更正对话框
function showAutoCorrectDialog() {
    try {
        ocxObj.ActiveDocument.Application.Dialogs(378).Show();
        console.log("自动更正对话框已显示");
    } catch (error) {
        console.error("显示自动更正对话框失败:", error);
    }
}

对话框管理器 ​

对话框管理器类 ​

javascript
// 对话框管理器
class DialogManager {
    constructor(ocxObj) {
        this.ocxObj = ocxObj;
        this.dialogMap = new Map();
        this.initDialogMap();
    }
    
    // 初始化对话框映射
    initDialogMap() {
        this.dialogMap.set('about', 9);
        this.dialogMap.set('new', 79);
        this.dialogMap.set('open', 80);
        this.dialogMap.set('saveAs', 84);
        this.dialogMap.set('print', 88);
        this.dialogMap.set('printSetup', 97);
        this.dialogMap.set('find', 112);
        this.dialogMap.set('replace', 117);
        this.dialogMap.set('goTo', 896);
        this.dialogMap.set('insertSymbol', 162);
        this.dialogMap.set('insertPicture', 163);
        this.dialogMap.set('insertHyperlink', 925);
        this.dialogMap.set('insertTable', 129);
        this.dialogMap.set('font', 174);
        this.dialogMap.set('paragraph', 175);
        this.dialogMap.set('pageSetup', 178);
        this.dialogMap.set('wordCount', 228);
        this.dialogMap.set('options', 203);
        this.dialogMap.set('autoCorrect', 378);
    }
    
    // 显示对话框
    showDialog(dialogName) {
        try {
            var dialogNumber = this.dialogMap.get(dialogName);
            if (dialogNumber === undefined) {
                console.error("未知的对话框名称:", dialogName);
                return false;
            }
            
            this.ocxObj.ActiveDocument.Application.Dialogs(dialogNumber).Show();
            console.log("对话框已显示:", dialogName);
            return true;
        } catch (error) {
            console.error("显示对话框失败:", dialogName, error);
            return false;
        }
    }
    
    // 显示文件操作对话框
    showFileDialog(dialogType) {
        var fileDialogs = {
            'new': 'new',
            'open': 'open',
            'saveAs': 'saveAs',
            'print': 'print',
            'printSetup': 'printSetup',
            'pageSetup': 'pageSetup'
        };
        
        var dialogName = fileDialogs[dialogType];
        if (dialogName) {
            return this.showDialog(dialogName);
        } else {
            console.error("未知的文件对话框类型:", dialogType);
            return false;
        }
    }
    
    // 显示编辑操作对话框
    showEditDialog(dialogType) {
        var editDialogs = {
            'find': 'find',
            'replace': 'replace',
            'goTo': 'goTo'
        };
        
        var dialogName = editDialogs[dialogType];
        if (dialogName) {
            return this.showDialog(dialogName);
        } else {
            console.error("未知的编辑对话框类型:", dialogType);
            return false;
        }
    }
    
    // 显示插入操作对话框
    showInsertDialog(dialogType) {
        var insertDialogs = {
            'symbol': 'insertSymbol',
            'picture': 'insertPicture',
            'hyperlink': 'insertHyperlink',
            'table': 'insertTable'
        };
        
        var dialogName = insertDialogs[dialogType];
        if (dialogName) {
            return this.showDialog(dialogName);
        } else {
            console.error("未知的插入对话框类型:", dialogType);
            return false;
        }
    }
    
    // 显示格式设置对话框
    showFormatDialog(dialogType) {
        var formatDialogs = {
            'font': 'font',
            'paragraph': 'paragraph',
            'pageSetup': 'pageSetup'
        };
        
        var dialogName = formatDialogs[dialogType];
        if (dialogName) {
            return this.showDialog(dialogName);
        } else {
            console.error("未知的格式对话框类型:", dialogType);
            return false;
        }
    }
    
    // 显示工具对话框
    showToolDialog(dialogType) {
        var toolDialogs = {
            'wordCount': 'wordCount',
            'options': 'options',
            'autoCorrect': 'autoCorrect'
        };
        
        var dialogName = toolDialogs[dialogType];
        if (dialogName) {
            return this.showDialog(dialogName);
        } else {
            console.error("未知的工具对话框类型:", dialogType);
            return false;
        }
    }
}

// 创建对话框管理器实例
const dialogManager = new DialogManager(ocxObj);

// 使用示例
dialogManager.showFileDialog('open');        // 显示打开文件对话框
dialogManager.showEditDialog('find');        // 显示查找对话框
dialogManager.showInsertDialog('picture');   // 显示插入图片对话框
dialogManager.showFormatDialog('font');      // 显示字体格式对话框
dialogManager.showToolDialog('wordCount');   // 显示字数统计对话框

对话框工具函数 ​

javascript
// 对话框工具函数
class DialogUtils {
    // 显示常用对话框
    static showCommonDialogs() {
        var commonDialogs = {
            'about': '关于对话框',
            'new': '新建文件对话框',
            'open': '打开文件对话框',
            'saveAs': '另存为对话框',
            'print': '打印对话框',
            'find': '查找对话框',
            'replace': '替换对话框',
            'font': '字体格式对话框',
            'paragraph': '段落格式对话框',
            'wordCount': '字数统计对话框'
        };
        
        return commonDialogs;
    }
    
    // 显示对话框选择器
    static showDialogSelector() {
        var dialogs = this.showCommonDialogs();
        var dialogList = Object.keys(dialogs);
        
        console.log("可用的对话框:");
        dialogList.forEach(function(dialogName, index) {
            console.log(index + 1 + ". " + dialogs[dialogName]);
        });
        
        return dialogList;
    }
    
    // 批量显示对话框
    static showMultipleDialogs(dialogNames) {
        var results = [];
        
        dialogNames.forEach(function(dialogName) {
            var result = dialogManager.showDialog(dialogName);
            results.push({
                dialog: dialogName,
                success: result
            });
        });
        
        return results;
    }
    
    // 检查对话框是否可用
    static isDialogAvailable(dialogName) {
        try {
            var dialogNumber = dialogManager.dialogMap.get(dialogName);
            return dialogNumber !== undefined;
        } catch (error) {
            console.error("检查对话框可用性失败:", error);
            return false;
        }
    }
}

// 使用示例
var availableDialogs = DialogUtils.showDialogSelector();
var results = DialogUtils.showMultipleDialogs(['about', 'wordCount', 'options']);

注意事项 ​

  1. 控件对象:

    • 确保ocxObj对象已正确初始化
    • 检查ActiveDocument是否可用
    • 处理控件未加载的情况
  2. 对话框编号:

    • 使用正确的对话框编号
    • 注意不同版本的差异
    • 验证编号的有效性
  3. 错误处理:

    • 使用try-catch包装对话框调用
    • 处理对话框显示失败的情况
    • 提供用户友好的错误信息
  4. 用户体验:

    • 考虑对话框的显示时机
    • 避免频繁调用对话框
    • 提供操作反馈
  5. 兼容性:

    • 考虑不同浏览器的兼容性
    • 处理不同版本的差异
    • 测试各种场景
  6. 性能优化:

    • 避免重复调用相同对话框
    • 合理使用对话框缓存
    • 优化对话框显示逻辑
  7. 安全性:

    • 验证对话框调用的权限
    • 处理敏感操作的安全检查
    • 记录对话框使用日志
  8. 调试和测试:

    • 记录对话框调用日志
    • 测试各种对话框组合
    • 验证对话框功能完整性