Visual Styles для своих контролов

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by razzzar, 25 Oct 2007.

  1. razzzar

    razzzar Elder - Старейшина

    Joined:
    16 Jun 2007
    Messages:
    92
    Likes Received:
    75
    Reputations:
    5
    вообщем проблема такова. создаю кнопку через АПИ:
    Code:
    hFileWnd = CreateWindow("button", "qwe", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 10, 10, 75, 20, hWnd, NULL, hInstance, NULL);
    но выглядит эта кнопка как в вин95. мне нужно чтобы она выглядела "по-современному", используя хршные стили.
    знаю что надо сделать манифест, но сколько раз я его не делал, ничего не получалось :(
    кто может помочь решить проблему?
     
    #1 razzzar, 25 Oct 2007
    Last edited: 25 Oct 2007
  2. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Есть такой файл: C:\WINDOWS\system32\logonui.exe.manifest
    Скопируй его к себе, в рабочую папку и переименуй в соответствии со своим exe'шником, когда убедишься что работает, можешь подкорректировать внутренности и прикрепить к ресурсам.
     
    1 person likes this.
  3. razzzar

    razzzar Elder - Старейшина

    Joined:
    16 Jun 2007
    Messages:
    92
    Likes Received:
    75
    Reputations:
    5
    ок, спс, запахало. только странно, почему раньше не работало. теперь есть еще 2 вопроса:
    1. после добавления манифеста, кнопка выглядит как и надо в хр, только вокруг нее белая рамка некрасивая(фон окна синий). как ее убрать?
    2. можно ли обойтись как-то без манифеста?
     
  4. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Элементы стилей предназначены для использования на окне, с цветом фона, что прописан в этом стиле.

    Тебе нужно решить, будешь использовать полностью системные стили или полностью свои, хуже всего, когда пытаются их совмещать и когда пользователь ставит например тёмный фон в стилях, программа становится не пригодна к работе и приходится от неё отказаться ;)

    А вообще, есть апи для использования этих стилей, но тогда твоя программа будет работать только под XP

    Code:
    UxTheme.dll CloseThemeData DrawThemeBackground DrawThemeBackgroundEx DrawThemeEdge DrawThemeIcon DrawThemePar
    entBackground DrawThemeText EnableThemeDialogTexture EnableTheming GetCurrentThemeName GetThemeAppProperties GetThemeBac
    kgroundContentRect GetThemeBackgroundExtent GetThemeBackgroundRegion GetThemeBool GetThemeColor GetThemeDocumentationPro
    perty GetThemeEnumValue GetThemeFilename GetThemeFont GetThemeInt GetThemeIntList GetThemeMargins GetThemeMetric GetThem
    ePartSize GetThemePosition GetThemePropertyOrigin GetThemeRect GetThemeString GetThemeSysBool GetThemeSysColor GetThemeS
    ysColorBrush GetThemeSysFont GetThemeSysInt GetThemeSysSize GetThemeSysString GetThemeTextExtent GetThemeTextMetrics Get
    WindowTheme HitTestThemeBackground IsAppThemed IsThemeActive IsThemeBackgroundPartiallyTransparent IsThemeDialogTextureE
    nabled IsThemePartDefined OpenThemeData SetThemeAppProperties SetWindowTheme
    PS Хотел дать ссылку на MSDN, но эти ***** поудаляли страницы связанные со стилями XP, наверное из-за этой ****** висты....
     
  5. grinay

    grinay IQ- 137%

    Joined:
    15 Jun 2004
    Messages:
    409
    Likes Received:
    174
    Reputations:
    305
    Нак те вообще эти стили-чем тебе стандартный не страивает?Или юзай свой.А то понаделают программ вод определенную программ.Я например поклоник исключительно(если брать виндовз) только win2k а щас наплодили всякого говна под win xp именно.Короче бред.Как в си++ это выглядит не подскажу но апи функции подскажу-только придеться рисовать-много рисовать для красивого интерфейса.
     
  6. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    Afair, нет.
     
  7. razzzar

    razzzar Elder - Старейшина

    Joined:
    16 Jun 2007
    Messages:
    92
    Likes Received:
    75
    Reputations:
    5
    ок, всем спасибо )