Appearance
如何调用WPS自己的对话框
基本语法
调用方式
javascript
ocxObj.ActiveDocument.Application.Dialogs(dialogNumber).Show()
参数说明
- ocxObj:控件对象实例
- dialogNumber:对话框编号,对应不同的WPS内置对话框
Word对话框编号对照表
帮助和关于对话框
对话框名称 | 编号 | 说明 |
---|---|---|
wdDialogHelpAbout | 9 | 关于对话框 |
文件操作对话框
对话框名称 | 编号 | 说明 |
---|---|---|
wdDialogFileNew | 79 | 新建文件对话框 |
wdDialogFileOpen | 80 | 打开文件对话框 |
wdDialogFileSaveAs | 84 | 另存为对话框 |
wdDialogFilePrint | 88 | 打印对话框 |
wdDialogFilePrintSetup | 97 | 打印设置对话框 |
wdDialogFilePageSetup | 178 | 页面设置对话框 |
编辑操作对话框
对话框名称 | 编号 | 说明 |
---|---|---|
wdDialogFileFind | 99 | 查找对话框 |
wdDialogEditFind | 112 | 查找对话框 |
wdDialogEditReplace | 117 | 替换对话框 |
wdDialogEditGoTo | 896 | 定位对话框 |
wdDialogEditGoToOld | 811 | 旧版定位对话框 |
wdDialogEditPasteSpecial | 111 | 选择性粘贴对话框 |
插入操作对话框
对话框名称 | 编号 | 说明 |
---|---|---|
wdDialogInsertBreak | 159 | 插入分页符对话框 |
wdDialogInsertSymbol | 162 | 插入符号对话框 |
wdDialogInsertPicture | 163 | 插入图片对话框 |
wdDialogInsertFile | 164 | 插入文件对话框 |
wdDialogInsertDateTime | 165 | 插入日期时间对话框 |
wdDialogInsertField | 166 | 插入域对话框 |
wdDialogInsertBookmark | 168 | 插入书签对话框 |
wdDialogInsertHyperlink | 925 | 插入超链接对话框 |
wdDialogInsertTableOfContents | 171 | 插入目录对话框 |
wdDialogInsertPageNumbers | 294 | 插入页码对话框 |
wdDialogInsertCaption | 357 | 插入题注对话框 |
wdDialogInsertFootnote | 370 | 插入脚注对话框 |
表格操作对话框
对话框名称 | 编号 | 说明 |
---|---|---|
wdDialogTableInsertTable | 129 | 插入表格对话框 |
wdDialogTableDeleteCells | 133 | 删除单元格对话框 |
wdDialogTableFormatCell | 612 | 表格单元格格式对话框 |
格式设置对话框
对话框名称 | 编号 | 说明 |
---|---|---|
wdDialogFormatFont | 174 | 字体格式对话框 |
wdDialogFormatParagraph | 175 | 段落格式对话框 |
wdDialogFormatColumns | 177 | 分栏对话框 |
wdDialogFormatTabs | 179 | 制表位对话框 |
wdDialogFormatStyle | 180 | 样式对话框 |
wdDialogFormatBordersAndShading | 189 | 边框和底纹对话框 |
wdDialogFormatDropCap | 488 | 首字下沉对话框 |
wdDialogFormatEncloseCharacters | 1162 | 带圈字符对话框 |
工具和选项对话框
对话框名称 | 编号 | 说明 |
---|---|---|
wdDialogToolsWordCount | 228 | 字数统计对话框 |
wdDialogToolsBulletsNumbers | 196 | 项目符号和编号对话框 |
wdDialogToolsOptionsGeneral | 203 | 常规选项对话框 |
wdDialogToolsOptionsView | 204 | 视图选项对话框 |
wdDialogToolsAdvancedSettings | 206 | 高级设置对话框 |
wdDialogToolsOptionsPrint | 208 | 打印选项对话框 |
wdDialogToolsOptionsSave | 209 | 保存选项对话框 |
wdDialogToolsOptionsSpellingAndGrammar | 211 | 拼写和语法选项对话框 |
wdDialogToolsOptionsUserInfo | 213 | 用户信息选项对话框 |
wdDialogToolsOptionsEdit | 224 | 编辑选项对话框 |
wdDialogToolsOptionsFileLocations | 225 | 文件位置选项对话框 |
wdDialogToolsAutoCorrect | 378 | 自动更正对话框 |
视图和显示对话框
对话框名称 | 编号 | 说明 |
---|---|---|
wdDialogViewZoom | 577 | 显示比例对话框 |
wdDialogDrawSnapToGrid | 633 | 绘图网格对话框 |
其他对话框
对话框名称 | 编号 | 说明 |
---|---|---|
wdDialogFormatChangeCase | 322 | 更改大小写对话框 |
wdDialogTCSCTranslator | 1156 | 繁简转换对话框 |
使用示例
基本调用示例
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']);
注意事项
控件对象:
- 确保ocxObj对象已正确初始化
- 检查ActiveDocument是否可用
- 处理控件未加载的情况
对话框编号:
- 使用正确的对话框编号
- 注意不同版本的差异
- 验证编号的有效性
错误处理:
- 使用try-catch包装对话框调用
- 处理对话框显示失败的情况
- 提供用户友好的错误信息
用户体验:
- 考虑对话框的显示时机
- 避免频繁调用对话框
- 提供操作反馈
兼容性:
- 考虑不同浏览器的兼容性
- 处理不同版本的差异
- 测试各种场景
性能优化:
- 避免重复调用相同对话框
- 合理使用对话框缓存
- 优化对话框显示逻辑
安全性:
- 验证对话框调用的权限
- 处理敏感操作的安全检查
- 记录对话框使用日志
调试和测试:
- 记录对话框调用日志
- 测试各种对话框组合
- 验证对话框功能完整性