Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: SetWindowTheme Добавлено: 15.01.03 14:57  

Автор вопроса:  Андрей Щёкин [darxeth] | Web-сайт: www.livejournal.com/users/darxeth_digital | ICQ: 161560107 

Вопрос - кто-нибудь работал с функцией из uxtheme.dll в XP - SetWindowTheme ? Почему-то эта функция работает на всех окнах.

Можно ли вообще с помощью неё отключить тему для произвольного окна ?

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 AASoft



Вопросов: 86
Ответов: 920
 Профиль | | #1 Добавлено: 15.01.03 21:22

MOzhno, ya dumayu. Sam to ya nikogda s etim delom ne rabotal, ot tebya tol`ko shas uslyshal. NO! Ya dumayu mozho po hWnd kak to sdelat`. Ya shas v shkole(XP netu:(), esli mozhesh`, prishli(na forum) Declaration(Public Declare Function...) etoj funkcii, a ya glyanu, mozhet che pojmu.

Potom domoj pridu, tama XP, esli smogu che sdelat`, napishu(hot` na mylo, hot` na forum, luchshe naforum-vse uznayut)

Udachi

P.S. Esli sam razberesh, pozhailusta! napishi na forum.

Ответить

Номер ответа: 2
Автор ответа:
 Андрей Щёкин [darxeth]



ICQ: 161560107 

Вопросов: 9
Ответов: 52
 Web-сайт: www.livejournal.com/users/darxeth_digital
 Профиль | | #2
Добавлено: 16.01.03 00:37

Обьявление:

Public Declare Function SetWindowTheme Lib "uxtheme.dll" (ByVal hwnd As Long, ByVal pszSubAppName As String, ByVal pszSubIdList As String) As Long

Нашёл в MSDN за Апрель 2001.
Написано что при передаче двух пустых строк в качестве pszSubAppName и pszSubAppName тема окна отключается.
Соответственно при передаче NULL (т.е. vbNullString) он включает тему.

На окно основного приложения это прекрасно работает. На остальных теперь тоже начало работать, но вместо убирания темы творит с ними непонятно что.
Не могу понять в чём дело.

Вот что говорит MSDN:

Syntax

HRESULT SetWindowTheme(    HWND hwnd,    LPCWSTR pszSubAppName,    LPCWSTR pszSubIdList);

Parameters

hwnd
[in] Handle to the window whose theme information is to be changed.
pszSubAppName
[in] Pointer to a string that contains the application name to use in place of the calling application's name. If this parameter is NULL, the calling application's name is used.
pszSubIdList
[in] Pointer to a string that contains a semicolon-separated list of class identifier (CLSID) names to use in place of the actual list passed by the window's class. If this parameter is NULL, the identifier (ID) list from the calling class is used.

Return Value

Returns S_OK if successful, or an error value otherwise.

Remarks

The theme manager retains the pszSubAppName and the pszSubIdList associations through the lifetime of the window, even if themes subsequently change. The window is sent a WM_THEMECHANGED message at the end of a SetWindowTheme call, so that the new theme can be found and applied.

When pszSubAppName and pszSubIdList are NULL, the theme manager removes the previously applied associations. To turn off theme-awareness for the specified window, pass an empty string, (L" "), which will not match any section entries.

Ответить

Номер ответа: 3
Автор ответа:
 AASoft



Вопросов: 86
Ответов: 920
 Профиль | | #3 Добавлено: 16.01.03 04:05

stranno! u menya vse rabotaet!mozhe ty che ne tak napisal, a?(v code)

Ответить

Номер ответа: 4
Автор ответа:
 Андрей Щёкин [darxeth]



ICQ: 161560107 

Вопросов: 9
Ответов: 52
 Web-сайт: www.livejournal.com/users/darxeth_digital
 Профиль | | #4
Добавлено: 17.01.03 15:33

Действительно странно. Ну ладно, возможно глюк WinXP (что-то последнее время она у меня глючит). Попробую ещё раз.

Спасибо за помощь.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам