XP Внешний вид страницы свойств Outlook VB6? - PullRequest
1 голос
/ 24 июня 2009

Я пишу PropertyPage для Outlook, используя VB6. Это реализовано как VB6 OCX.

При запуске в более новой версии Outlook (например, 2007) в XP (или новее) мой диалог выглядит странно, потому что у него нет внешнего вида XP. Есть ли способ сделать это?

Желательно без добавления файла манифеста для Outlook.exe.

Ответы [ 4 ]

1 голос
/ 24 июня 2009

Я думаю, что вы правы, избегая использования манифеста. К сожалению, общеизвестные стандартные хаки для поддержки тем XP из VB6 полагаются на манифесты. Эта статья MSDN о решениях для разработчиков для Outlook 2007 предупреждает, что предоставление собственного манифеста для Outlook 2007 может привести к его зависанию.

0 голосов
/ 24 июня 2009

Это то, что я делаю во всех моих приложениях VB6, только когда-либо тестировалось в отдельном EXE, поэтому не уверен, что он будет работать как OCX.

Private Type tagInitCommonControlsEx
   lngSize As Long
   lngICC As Long
End Type
Private Declare Function InitCommonControlsEx Lib "comctl32.dll" _
   (iccex As tagInitCommonControlsEx) As Boolean
Private Const ICC_USEREX_CLASSES = &H200

Public Function InitCommonControlsVB() As Boolean
   On Error Resume Next
   Dim iccex As tagInitCommonControlsEx
   ' Ensure CC available:
   With iccex
       .lngSize = LenB(iccex)
       .lngICC = ICC_USEREX_CLASSES
   End With
   InitCommonControlsEx iccex
   InitCommonControlsVB = (Err.Number = 0)
   On Error Goto 0
End Function

Public Sub Main()
   InitCommonControlsVB

   '   
   ' Start your application here:
   ' 

End Sub

Создайте файл, подобный этому: http://pastebin.com/f689388b2

Затем вы добавляете файл манифеста в файл ресурсов с типом RT_MANIFEST (24)

Я не могу точно вспомнить, нужно ли вам это делать, потому что сейчас я всегда использую один и тот же готовый файл .res.

Источник: http://www.vbaccelerator.com/home/vb/code/libraries/XP_Visual_Styles/Using_XP_Visual_Styles_in_VB/article.asp

0 голосов
/ 24 июня 2009

Не то чтобы я знал об использовании VB6

Если вы можете использовать вместо .NET - одним из способов является WPF. Ранее я видел пример по коду-проекту. Вот ссылка

Редактировать: И еще один инструмент для помощи здесь

0 голосов
/ 24 июня 2009

Я не думаю, что вы можете сделать это в VB6 ... эти элементы управления будут выглядеть так, как они выглядят. Однако вы можете создавать страницы свойств с помощью Visual Studio .NET и Visual Basic .NET и получать внешний вид XP, 2007 и Vista. Это немного отличается от того, что вы делаете, но вы все равно отстаете от времени разработки с VB6. Подробнее о том, как это сделать, можно узнать здесь и офисный центр разработчиков .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...