Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Flix

Пользователь


Сообщения: 95
Благодарности: 55

Профиль | Отправить PM | Цитировать


Возвращаясь к "шкурному" вопросу при помощи SkinSharp, то вот перечень всех функций, которые поддерживает библиотека SkinH.dll (описание API в исходном коде библиотеки - перевод с китайского):

Код: Выделить весь код
/*************************************************************/
/*	Описание SkinSharp API									 */
/*************************************************************/

#ifndef SKIN_H
#define SKIN_H

/********************** Коды ошибок **************************/
#define		SRET_OK				0	// Операция выполнена успешно
#define		SRET_ERROR			1	// Операция не удалась
#define		SRET_ERROR_READ			2	// Ошибка файловых операций	
#define		SRET_ERROR_PARAM		3	// Неверный параметр
#define		SRET_ERROR_CREATE		4	// Ошибка создания стиля
#define		SRET_ERROR_FORMAT		5	// Неверный формат стиля
#define		SRET_ERROR_VERSION		6	// Неверная версия стиля
#define		SRET_ERROR_PASSWORD		7	// Неверный пароль доступа к стилю
#define		SRET_ERROR_INVALID		8	// Ошибка авторизации
/*************************************************************/


#define DECLSKINHAPI __declspec(dllimport) int  __stdcall

extern "C"
{
/****************** Функция SkinH_Attach *********************/
// Загрузка файла стиля skinh.she. Для успешной загрузки стиля,
// файл стиля *.she должен быть в одном каталоге с файлом SkinH.dll.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_Attach();
/*************************************************************/

/****************** Функция SkinH_AttachEx *******************/
// Загрузка файла стиля по указанному пути.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_AttachEx(
				LPCTSTR strSkinFile,	// Путь к файлу стиля.
				LPCTSTR strPassword	// Пароль к файлу стиля.
				);
/*************************************************************/

/****************** Функция SkinH_AttachExt ******************/
// Загрузка указанного файла стиля с заданными параметрами насыщенности, оттенка и яркости.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_AttachExt(
				LPCTSTR strSkinFile,	// Путь к файлу стиля.
				LPCTSTR strPassword,	// Пароль к файлу стиля.
				int nHue,		// Оттенок. Диапазон значений от -180 до +180, по умолчанию 0.
				int nSat,		// Насыщенность. Диапазон значений от -100 до +100, по умолчанию 0.
				int nBri		// Яркость. Диапазон значений от -100 до +100, по умолчанию 0.
				);
/*************************************************************/

/****************** Функция SkinH_AttachRes ******************/
// Загрузка указанного ресурса стиля с заданными параметрами насыщенности, оттенка и яркости.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_AttachRes(
				LPBYTE	pShe,		// Указатель на ресурсы стиля.
				DWORD	dwSize,		// Размер ресурсов.
				LPCTSTR strPassword,	// Пароль к файлу стиля.
				int nHue,		// Оттенок. Диапазон значений от -180 до +180, по умолчанию 0.
				int nSat,		// Насыщенность. Диапазон значений от -100 до +100, по умолчанию 0.
				int nBri		// Яркость. Диапазон значений от -100 до +100, по умолчанию 0.
				);
/*************************************************************/

/****************** Функция SkinH_AttachResEx ****************/
// Загрузка указанного имени ресурса стиля с заданными параметрами насыщенности, оттенка и яркости.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_AttachResEx(
				LPCTSTR lpName,		// Имя ресурса.
				LPCTSTR lpType,		// Тип ресурса.
				LPCTSTR strPassword,	// Пароль к файлу стиля.
				int nHue,		// Оттенок. Диапазон значений от -180 до +180, по умолчанию 0.
				int nSat,		// Насыщенность. Диапазон значений от -100 до +100, по умолчанию 0.
				int nBri		// Яркость. Диапазон значений от -100 до +100, по умолчанию 0.
				);
/*************************************************************/

/****************** Функция SkinH_Detach *********************/
// Выгрузка стиля.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_Detach();
/*************************************************************/

/****************** Функция SkinH_DetachEx *******************/
// Выгрузка стиля для указанного дескриптора окна.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_DetachEx(
				HWND hWnd		// Дескриптор (handle) окна.
				);
/*************************************************************/

/****************** Функция SkinH_SetWindowAlpha *************/
// Установка уровня прозрачности для указанного дескриптора окна.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetWindowAlpha(
				HWND hWnd,		// Дескриптор (handle) окна.
				int nAlpha		// Прозрачность. Диапазон значений от 0 до 255.
				);
/*************************************************************/

/****************** Функция SkinH_AdjustHSV ******************/
// Настройка оттенка, насыщенности и яркости стиля.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_AdjustHSV(
				int nHue,		// Оттенок. Диапазон значений от -180 до +180, по умолчанию 0.
				int nSat,		// Насыщенность. Диапазон значений от -100 до +100, по умолчанию 0.
				int nBri		// Яркость. Диапазон значений от -100 до +100, по умолчанию 0.
				);
/*************************************************************/

/****************** Функция SkinH_GetColor *******************/
// Получение значения цвета в точке с координатами nX, nY.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_GetColor(
				HWND hWnd,		// Дескриптор (handle) окна или элемента управления.
				int nX,			// Значение координаты Х.
				int nY			// Значение координаты Y.
				);
/*************************************************************/

/****************** Функция SkinH_Map ************************/
// Установка стиля для определенного типа элемента управления.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_Map(
				HWND hWnd,		// Дескриптор (handle) окна или элемента управления.
				int nType		// Тип элемента управления.
				);
	// Идентификаторы элементов управления
	#define TYPE_UNKNOWN				0
	#define TYPE_ANIMATE				1001
	#define TYPE_CHECKBOX				1002
	#define TYPE_COMBOBOX				1003
	#define TYPE_COMBOLBOX				1004
	#define TYPE_CONTROLBAR				1005
	#define TYPE_DATETIME				1006
	#define TYPE_EDITBOX				1007
	#define TYPE_GROUPBOX				1008
	#define TYPE_HEADERCTRL				1009
	#define TYPE_HOTKEY				1010
	#define TYPE_IPADDRESS				1011
	#define TYPE_LABEL				1012
	#define TYPE_LISTBOX				1013
	#define TYPE_LISTVIEW				1014
	#define TYPE_MDICLIENT				1015
	#define TYPE_MENU				1016
	#define TYPE_MONTHCAL				1017
	#define TYPE_PICTURE				1018
	#define TYPE_PROGRESS				1019
	#define TYPE_PUSHBUTTON				1020
	#define TYPE_RADIOBUTTON			1021
	#define TYPE_REBAR				1022
	#define TYPE_RICHEDIT				1023
	#define TYPE_SCROLLBAR				1024
	#define TYPE_SCROLLCTRL				1025
	#define TYPE_SPINCTRL				1026
	#define TYPE_STATUSBAR				1027
	#define TYPE_TABCTRL				1028
	#define TYPE_TOOLBAR				1029
	#define TYPE_TOOLBARWND				1030
	#define TYPE_TRACKBAR				1031
	#define TYPE_TREEVIEW				1032
	#define TYPE_WINDOW				1034
	#define TYPE_COMCTRL				1036
	#define TYPE_PAINTCTRL				1037
/*************************************************************/

/****************** Функция SkinH_SetAero ********************/
// Включение/Отключение эффекта Aero.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetAero(
				int bAero		// Включить Aero - 1. Отключить Aero - 0.
				);
/*************************************************************/

/****************** Функция SkinH_AdjustAero *****************/
// Установка параметров Aero.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_AdjustAero(
				int nAlpha,		// Прозрачность. Диапазон значений от 0 до 255 (по умолчанию 0).
				int nShwDark,		// Яркость тени. Диапазон значений от 0 до 255 (по умолчанию 0).
				int nShwSharp,		// Четкость тени. Диапазон значений от 0 до 255 (по умолчанию 0).
				int nShwSize,		// Размер тени. Диапазон значений от 2 до 19 (по умолчанию 2).
				int nX,			// Смещение по горизонтали (X), 0-25 (по умолчанию 0).
				int nY,			// Смещение по вертикали (Y), 0-25 (по умолчанию 0).
				int nRed,		// Красный компонент цвета. Диапазон значений от 0 до 255 (по умолчанию -1).
				int nGreen,		// Зеленый компонент цвета. Диапазон значений от 0 до 255 (по умолчанию -1).
				int nBlue		// Синий компонент цвета. Диапазон значений от 0 до 255 (по умолчанию -1).
				);
/*************************************************************/

/****************** Функция SkinH_SetWindowMovable ***********/
// Установка для формы свойства Moveable.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetWindowMovable(
				HWND hWnd,		// Дескриптор (handle) окна.
				BOOL bMovable		// 0 - неперемещаемая, 1 - перемещаемая.
				);
/*************************************************************/

/****************** Функция SkinH_SetBackColor ***************/
// Установка фонового цвета для заданного элемента управления
// (только для элементов управления CheckBox, Edit, GroupBox).
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetBackColor(
				HWND hWnd,		// Дескриптор (handle) элемента управления.
				int nRed,		// Значение красного компонента цвета.
				int nGreen,		// Значение зеленого компонента цвета.
				int nBlue		// Значение синего компонента цвета.
				);
/*************************************************************/

/****************** Функция SkinH_SetForeColor ***************/
// Установка переднего цвета для заданного элемента управления
// (только для элементов управления CheckBox, Edit, GroupBox).
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetForeColor(
				HWND hWnd,		// Дескриптор (handle) элемента управления.
				int nRed,		// Значение красного компонента цвета.
				int nGreen,		// Значение зеленого компонента цвета.
				int nBlue		// Значение синего компонента цвета.
				);
/*************************************************************/

/****************** Функция SkinH_LockUpdate *****************/
// Обновление или блокировка эффекта стиля для указанного дескриптора
// окна или элемента управления, в случае многократной смены стиля.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_LockUpdate(
				HWND hWnd,		// Дескриптор (handle) окна или элемента управления.
				int bUpdate		// Блокировать эффект - 1, обновить эффект - 0.
				);
/*************************************************************/

/****************** Функция SkinH_SetMenuAlpha ***************/
// Установка прозрачности меню.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetMenuAlpha(
				int nAlpha		// Прозрачность. Диапазон значений от 0 до 255.
				);
/*************************************************************/

/****************** Функция SkinH_NineBlt ********************/
// Отрисовка контекста элемента.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_NineBlt(
				HDC hDtDC,		// Контекст элемента.
				int left,		// Координата X левого верхнего угла элемента.
				int top,		// Координата Y левого верхнего угла элемента.
				int right,		// Координата X правого нижнего угла элемента.
				int bottom,		// Координата Y правого нижнего угла элемента.
				int nMRect		// Идентификатор (ID) элемента.
				);
/*************************************************************/

/****************** Функция SkinH_SetTitleMenuBar ************/
// Установка заголовка меню.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetTitleMenuBar(
				HWND hWnd,	 	// Дескриптор (handle) окна.
				BOOL bEnable,		// 1 - установить параметры меню. 0 - отменить установку. 
				int nTMenuY, 		// Высота панели меню.
				int nTopOffs, 		// Смещение сверху.
				int nRightOffs 		// Смещение вправо.
				);
/*************************************************************/
	
/****************** Функция SkinH_SetFont ********************/
// Установка шрифта для заданного элемента управления.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetFont(
				HWND hWnd,		// Дескриптор (handle) элемента управления.
				HFONT hFont		// Дескриптор шрифта.
				);
/*************************************************************/
		
/****************** Функция SkinH_SetFontEx ******************/
// Установка свойств шрифта для заданного элемента управления.
// В случае успешного выполнения операции возвращает код 0.

	DECLSKINHAPI SkinH_SetFontEx(
				HWND hWnd,		// Дескриптор (handle) элемента управления.
				LPCTSTR szFace,		// Имя шрифта.
				int nHeight,		// Высота шрифта.
				int nWidth,		// Ширина шрифта.
				int nWeight,		// Плотность шрифта.
				int nItalic,		// Стиль курсив.
				int nUnderline,		// Стиль подчеркнутый.
				int nStrikeOut		// Стиль зачеркнутый.
				);
/*************************************************************/

/****************** Функция SkinH_VerifySign *****************/
// Проверка цифровой подписи.
// Подпись есть и она действительна - возвращает код 1.
// Подписи нет или она недействительна - возвращает код 0.

	DECLSKINHAPI SkinH_VerifySign();
/*************************************************************/

}
#endif
Например, чтобы изменить цветовую гамму загруженного стиля, нужно в сценарии указать следующую команду:

Код: Выделить весь код
  # Настройка оттенка, насыщенности и яркости стиля.
    ; 80 - значение оттенка
    ; 75 - значение насыщенности 
    ;  0 - значение яркости  
  System::Call SkinH::SkinH_AdjustHSV(i80,i75,i0)
Необходимые параметры можно подобрать при помощи обозревателя стилей SkinViewer:



Таким образом не обязательно создавать новый стиль, можно просто подобрать желаемые параметры цвета для одного из готовых стилей и указать их в сценарии.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:30, 24-02-2014 | #1045