QAxBase::dynamicCallHelper: ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary): No such property in {000209ff-0000-0000-c000-000000000046} [Microsoft Word Application] Candidates are: ActiveDocument ActiveEncryptionSession ActivePrinter ActiveProtectedViewWindow ActiveWindow AddIns AnswerWizard Application ArbitraryXMLSupportAvailable Assistance Assistant AutoCaptions AutoCorrect AutoCorrectEmail AutomationSecurity
时间: 2024-02-29 22:51:37 浏览: 175
这个错误信息提示 `ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary)` 这个属性不存在于 Word COM 对象中。可能是因为您使用的 Word 版本与代码中使用的不同,或者代码中使用的属性名称不正确。
为了解决这个问题,您可以尝试使用以下代码来获取页眉对象,并将页码居中对齐:
```
QAxObject *header = m_wordWidget->querySubObject("ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary)");
QAxObject *range = header->querySubObject("Range");
QAxObject *pageNumbers = range->querySubObject("PageNumbers");
pageNumbers->dynamicCall("Add(wdPageNumberStyleArabic)"); // 添加页码
QAxObject *pageNumbersRange = pageNumbers->querySubObject("Range");
pageNumbersRange->dynamicCall("ParagraphFormat.Alignment = wdAlignParagraphCenter"); // 设置页码居中对齐
```
这段代码中,我们直接使用 `ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary)` 获得页眉对象,并且在页码范围内设置居中对齐属性。请注意,这里的 `wdAlignParagraphCenter` 是一个枚举值,需要在代码中正确地定义。
阅读全文