:: UWL ::



UWL v 2.1Библиотека для расширения возможностей программ, написанных на WinAPI и для более быстрого программирования. Компактна и быстра. Поставляется в виде исходников. Поддержка сворачивания в трэй, ссылки, ToolTips, перемещение окон за произвольное место, несколько форм кнопок, визуальная работа с регионами, стили для стандартных контролов Windows, стили для меню, простое создание меню и еще много другого! В комплекте - пример использования. (P.S. Все это дело на С++) uwl.zip [43.5 KB]

Полное описание всех возможностей UWL

struct uwlProp

Структура, описывающая значение свойства.
Описание полей:

FOR_ALL

Когда фукнция поиска свойства не находит свойства с нужным owner, то она пытается найти окно с нулевым owner, а FOR_ALL как раз и является нулевым HWND. Таким образом, с помощью FOR_ALL можно задать значение по-умолчанию для любого свойства.

DWORD uwlSetProp(HWND owner, UINT prop, DWORD value = 0)

Устанавливает значение заданного свойства для заданного окна. Если свойство еще не существует в памяти, оно будет созданно.

DWORD uwlGetProp(HWND owner, UINT prop, DWORD defaultValue = 0)

Возвращает значение заданного свойства или defaultValue, если свойство не найдено.

uwlProp * uwlFindProp(HWND owner, UINT prop)

Ищет значение свойства и возвращает указатель на него.

uwlStyle

Структура, описывающая параметры стиля.
Описание полей:

Сообщения

Свойства

uwlDefWNDPROC(имя_функции)

Полезный макрос для более краткого объявления заголовка WNDPROC-функции.

uwlDefDLGPROC(имя_функции)

Полезный макрос для более краткого объявления заголовка DLGPROC-функции.

callWNDPROC(имя_функции), callDLGPROC(имя_функции)

Макросы для более удобного вызова диалоговых и оконных функций, особенно в конце своей диалоговой/оконной функции.

ExecDialog(идентиф_диалога, диалоговая_функция, родительское_окно)

Более быстрый способ вызвать функцию DialogBoxParam.

ExecAbout(идентификатор_диалога)

Самый простой способ запустить диалог About. Использует uwlAboutProc.

uwlLinkProc

Данная оконная функция будет сопоставлена всем ссылкам (текст, начинающийся с http://) при вызове uwlInstall.

uwlButtonProc

Данная оконная функция будет сопоставлена всем кнопкам при вызове uwlInstall.

uwlDialogProc

Диалоговая функция библиотеки UWL. Вы должны вызвать ее в конце своей диалоговой функции.

uwlAboutProc

Простая диалоговая функция для диалогов типа About.

BOOL uwlInstall(HWND hWnd)

Устанавливает UWL на заданное окно, переопределяя кнопки и статический текст.

BOOL uwlInit(LPCTSTR BeAlone = NULL)

Вы должны вызвать эту функцию инициализации библиотеки UWL. Она выделит необходимую ей память. Если функция вернет FALSE, то лучше выйти из программы. BeAlone - это строковый параметр, позволяющий вам сделать так, что одновременно в памяти сможет работать только одна копия вашего приложения. В другой копии функция uwlInit вернет FALSE. Если вы задаете этот параметр, то он должен быть уникальной строкой символов (то есть вероятность, что у кого-то другого будет та же самая строка символов должна быть минимальной).

BOOL uwlDone(BOOL Exit = FALSE)

Завершает работу с библиотекой UWL, освобождая всю выделенную память. Если Exit == TRUE, то функция вызывает ExitProcess(0) для завершения работы программы.

UINT uwlTrayIcon(HWND hWnd, DWORD Action = NIM_ADD, LPCTSTR Tip = NULL, HICON hIcon = NULL)

Очень удобная функция для помещения заданной иконки в системный трэй. hWnd должен обозначать окно, которому в случае возникновения события для иконки будет послано сообщение UWL_WM_NOTIFYICON. Tip это текст подсказки для иконки. Если он не указан, будет взят текущий текст окна hWnd. Если не указана иконка hIcon, то будет взята текущая иконка заданного окна.

DWORD uwlSetProp(UINT ctrlID, HWND hDlg, UINT prop, DWORD value = 0)

Более удобный путь установить значение свойства для какого-либо компонента диалога.

HINSTANCE uwlExecute(LPCTSTR cmd, UINT show = 0, HWND hWnd = 0)

Выполняет команду cmd. Это может быть вызов какого-либо приложения, или открытие файла, или документа, или даже открытие ссылки. Параметр show отвечает за появление окна того приложения, которое будет запушено. Параметр hWnd это хэндл родительского окна, его без проблем можно сделать NULL.

TOOLTIPS

Альтернативный путь указать подсказки. Просто вызывает uwlTooltips с первым параметром hWnd.

SEP

Более краткий путь указать, что пункт меню это разделитель. Используйте при вызове uwlCreateMenu.

SEPARATOR

Более краткий путь указать, что пункт меню это разделитель. Используйте при вызове POPUPMENU, POPUPMENU_, POPUP, POPUP_, MENU, MENU_.

POPUPMENU_, POPUP_

Вызывает функцию uwlCreateMenu с первым параметром равным TRUE. То есть создает всплывающее меню.

POPUPMENU(имя_переменной), POPUP(имя_переменной)

Действует как POPUP*_, но присваивает значение заданной переменной.

MENU_

Вызывает функцию uwlCreateMenu с первым параметром равным FALSE. То есть создает обычное меню.

MENU(name)

Действует как MENU_, но присваивает значение заданной переменной.

ITEM(text,id)

Альтернативный способ указать пункт меню.

END

Более краткий способ закончить создание меню (uwlCreateMenu) или определение подсказок (uwlTooltips). Используйте при вызове макросов.

void uwlGrowWindow(HWND hWnd, int dcx, int dcy, BOOL center = TRUE)

Изменяет размеры заданного окна, увеличивая каждую сторону на dcx и dcy соответственно. Если center=TRUE, то окно центрируется относительно своего прошлого положения.

HMENU uwlCreateMenu(BOOL isPopup, LPCTSTR text, UINT id...)

Удобная функция для создания меню. isPopup=TRUE, если вам нужно создать popup меню; иначе - вы создадите обычное меню. Далее просто перечисляете текст пункта меню и его идентификатор, то есть то число, которое придет в сообщении WM_COMMAND, когда пункт меню будет выбран. Все это дело заканчивается NULL'ом.

void uwlTooltips(HWND hWnd, UINT id, LPCTSTR tip, ... /* NULL */)

Задает подсказки сразу для нескольких контролов заданного окна. Сначала указываете идентификатор контрола, а затем - текст подсказки.

void uwlFreeMemory(HWND hWnd)

Данная функция освобождает всю возможную память, занятую UWL.

Макросы lb*

Более удобный способ работать с ListBox'ами.

USE_ICON(идентификатор_иконки)

Устанавливает UWL_ICON для текущего окна.

USE_TTDEST(идентификатор_контрола)

Устанавливает UWL_TTDEST для текущего окна (то есть для hWnd) равным HWND заданного идентификатором контрола.

NO_CANTRAY

Устанавливает UWL_CANTRAY для текущего окна (то есть для hWnd) равным FALSE.

NO_MOVABLE

Устанавливает UWL_MOVABLE для текущего окна (то есть для hWnd) равным FALSE.

USE_STYLE(идентификатор_контрола, uwlStyle*)

Более простой и быстрый способ установить значение свойства UWL_STYLE для заданного контрола.

USE_SHAPE(идентификатор_кнопки, SHAPE_*)

Более простой и быстрый способ установить значение свойства UWL_SHAPE для заданной кнопки.

USE_TRAYMENU(HMENU)

Более простой и быстрый способ установить значение свойства UWL_TRAYMENU.

USE_CONTEXTMENU(HMENU)

Более простой и быстрый способ установить значение свойства UWL_CONTEXTMENU.

void uwlDoMCI(HWND hWnd, LPCTSTR cmd, LPSTR ret = NULL, UINT ret_len = 0)

Более удобная функция для вызова mciSendString. С помощью нее можно с легкостью проигрывать музыкальные компакт-диски, видео и т.д. При возникновении ошибки будет выдан соответствующий MessageBox. Если команда возвращает результат, он будет записан в ret. Для дополнительной информации смотри help по multimedia API.

HMENU uwlSetSubMenus(HMENU hMenu, UINT id, HMENU hSubMenu, ... /* NULL */)

Простой способ установить вложенные меню для произвольного заданного меню hMenu. id - это идентификатор пункта меню. hSubMenu - идентификатор popup меню.

hInstance

Глобальная переменная - HINSTANCE приложения. Инициализируется при вызове uwlInit.

COLORREF uwlChooseColor(HWND hWnd, COLORREF InitColor = 0)

Запускает стандартный диалог выбора цвета. InitColor - это начальный цвет. Функция вернет выбранный цвет в качестве своего результата.

BOOL uwlChooseFile(HWND hWnd, LPSTR fname, LPCTSTR filter = "All Files (*.*)\0*.*\0", BOOL open_dlg = TRUE)

Запускает стандартный диалог выбора файла. По адресу в переменной fname будет записан выбранный файл. Также вы можете задать фильтр. Если open_dlg=TRUE, то будет вызван диалог об открытии файла; иначе - о сохранении. Если функция вернула TRUE, то файл был успешно выбран.

BOOL uwlChooseFont(HWND hWnd, LPLOGFONT LogFont)

Запускает стандартный диалог выбора шрифта. Результат заносит в структуру LOGFONT, адрес которой передан через LogFont, чтобы вы могли сразу создать выбранный шрифт. Если функция вернула TRUE, то шрифт был успешно выбран.

Макросы bm*

Предоставляют более удобный способ посылки сообщений кнопкам.

Макросы msg*, err*, wrn*

Более удобный способ вызвать функцию MessageBox.

NO_BRUSH

Используется при вызове uwlCreateStyle, когда значение кисти должно быть NULL (например, при создании стиля для меню).

uwlStyle * uwlCreateStyle(COLORREF FontColor, COLORREF BackColor, COLORREF BrushColor)

Создает динамически стиль с заданными цветом шрифта, задним цветом шрифта и с заданной цветом кистью. По окончании работы приложения, UWL сама освободит всю выделенную память.

uwlStyle * uwlCreateStyle(COLORREF FontColor, COLORREF BackColor, HBRUSH hBrush = NO_BRUSH)

Создает динамически стиль с заданными цветом шрифта, задним цветом шрифта и заданной кистью. По окончании работы приложения, UWL сама освободит всю выделенную память.

DWORD uwlGetProp(UINT ctrlID, HWND hDlg, UINT prop, DWORD defValue = 0)

Работает как и ее более простой вариант, но для вычисления HWND окна вызывает GetDlgItem(hDlg, ctrlID).

void uwlDrawBitmap(HDC hdc, int x, int y, int w, int h, HBITMAP hBitmap)

Простая функция для рисования изображений.

HMENU uwlSetMenuIcons(HMENU hMenu, UINT id, HICON hIcon, ... /* NULL */)

Устанавливает иконки для заданных пунктов меню. Весь список должен заканчиваться идентификатором (id) NULL.

HMENU uwlSetMenuIcons(HMENU hMenu, UINT id, UINT iconID, ... /* NULL */)

Устанавливает иконки для заданных пунктов меню. Иконки задаются своими идентификаторами в ресурсах.

struct uwlMenuItemInfo

Структура, которую UWL использует для описания пункта меню при создании его через uwlCreateMenu.
Описание полей:

void * uwlAlloc(DWORD size)

Выделяет память, используя GlobalAlloc. Память выделяется фиксированная.

void uwlFree(void * ptr)

Освобождает ранее выделенную память. Использует GlobalFree.

void * uwlReAlloc(void * ptr, DWORD size)

Перевыделяет память. В новую память копируется значение старой.

void uwlError()

Выводит MessageBox с сообщением об ошибке, код которой возвратит функция GetLastError. Сразу после этого предложит завершить работу программы и если ответ пользователя положителен, вызовет uwlDone(TRUE).

uwlChartProc

Оконная функция для вывода графиков по заданному массиву данных. Адрес массива (int) задается в свойстве UWL_DATA. Его нулевой элемент должен содержать размер массива (число элементов). А начиная с первого элемента должны идти данные. При нажатии и удержании левой клавиши мыши, контрол увеличивает масштаб построения графика в соответствии со значением свойства UWL_SCALE.

int uwlCalc(LPCTSTR s, BOOL *ok, double *res, ... /* parameters */)

Функция для вычисления произвольного математического выражения, заданного ей аргументом s. После выполнения, она вернет целочисленный результат выражения, а в *res будет записан неокругленный результат. При этом, если *ok равен TRUE, то функция была выполнена без ошибок, иначе имела место ошибка в заданном выражении. Пока поддерживаются только следующие операции: +, -, *, /, sin, cos, abs, sqrt. Для использования параметров в заданном выражении применяются следующие обозначения: a..z - целочисленные int параметры, A..Z - вещественные double параметры. a(A) - первый параметр, b(B) - второй и т.д.

BOOL uwlMakeData(int *data, DWORD len, LPCTSTR formula)

Простая функция для заполнения массива данных для UWL Chart Control. Задаете массив, его длину и формулу. Функция в цикле изменяет значение параметра для uwlCalc от 1 до len-1 и записывает результат в заданный массив. Если были ошибки в формуле, она возвратит FALSE.

HWND uwlGetHWND(UINT prop, DWORD value)

Ищет владельца значения свойства. Задаете свойство, значение и она найдет вам первое окно, для которого определено свойство с заданным значением.

Макросы UWL_DISABLE_*, UWL_ENABLE_*

Позволяют исключить из процесса компиляции некоторые части исходного кода библиотеки, тем самым можно исключить неиспользуемые возможности и уменьшить результирующий файл.
Hosted by uCoz