На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: SCINER, B.V.
  
    > Поддежка тем XP , трабла с Frame
      Про то как использовать XPшный интерфейс я писал вот здесь Манифест

      Это оттуда:

      1. В свойствах проекта надо поставить Startup Object: Sub Main
      2. Создать модуль
      3. В нём написать

      ExpandedWrap disabled
        Public Type tagInitCommonControlsEx
        lngSize As Long
        lngICC As Long
        End Type
         
        Public Declare Function InitCommonControlsEx Lib "comctl32.dll" (iccex As tagInitCommonControlsEx) As Boolean
         
        Public Function InitCommonControlsVB() As Boolean
        On Error Resume Next
        Dim iccex As tagInitCommonControlsEx
        iccex.lngSize = LenB(iccex)
        iccex.lngICC = 512
        InitCommonControlsEx iccex
        InitCommonControlsVB = (err.Number = 0)
        On Error GoTo 0
        End Function
         
        Sub main()
        InitCommonControlsVB
        Load Form1
        End Sub

      где Form1, имя формы, которая должна загружаться при запуске проги. Если надо чтобы она показывалась, то вместо Load Form1 надо написать Form1.Show

      4. Компилим как обычно.
      5. Всё, вшиваем в скомпилиный EXE'шник манифест. Можно ResHacker'ом используя *.res файл или PeExplorer'ом, он вобще всё автоматом делает, кому чё по душе. PeExplorer будет грозно ругаться что типа комонконтролы не инициализированны и т.д. но на самом деле всё работает.

      Плюсы этого метода заключаются в том что не надо добавлять компонент Windows Common Controls 5.0 и режим совместимости тоже ставить не надо. А *.res файл вот...

      PS Кстати может это стоит в фак добавить?
      Сообщение отредактировано: Molder -

      Прикреплённый файлПрикреплённый файлXPStyle.zip (0.44 Кбайт, скачиваний: 310)
        Привет всем!

        У меня в проге (она юзает манифест для поддержки тем XP) как то странно отображаются option и frame... Если проблема с черным фоном option фиксится расположением контрола на picturebox, то с frame это не проходит - при движении курсором мыши по Frame происходит как бы его мерцание... изредка так...

        нельзя ли это как то пофиксить?

        А вообще какие контролы лучше юзать - MS Common Contols 5.0 или 6.0?
          6.0...
          А про мерцание где-то тема была...
            Soft4You, Если я "прально" понял, то это должно помочь:

            ExpandedWrap disabled
              Private Declare Sub InitCommonControls Lib "comctl32.dll" ()
              Private Sub Form_Load()
                  InitCommonControls
              End Sub
              Да не, так же мерцает если мышку водить...

              У меня прога юзает MS common controls 6.0
              Как сделать чтобы тулбар тоже поддерживал темы XP?

              initcommoncontrols делаю так: Public Declare Sub InitCommonControls Lib "comctl32" ()

              Странно. Не могу понять в чем дело... :(
                Не, это не из-за InitCommonControls. У меня таже проблемма с миганием Frame :( .
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0234 ]   [ 18 queries used ]   [ Generated: 19.04.24, 20:20 GMT ]