Русский справочник по Win32 API
Шрифт:
Приложения создают собственные классы диалоговых окон, заполняя структуру типа WNDCLASS соответствующей информацией и регистрируя класс с помощью функции RegisterClass . Некоторые приложения заполняют структуру, используя функцию GetClassInfo , указывая имя предопределенного диалогового окна. В таких случаях, приложения модифицируют, по меньшей мере, член lpszClassName перед регистрацией. И во всех случаях, член cbWndExtra структуры типа WNDCLASS для создаваемых приложением классов диалоговых окон,
Функция DefDlgProc не должна вызываться оконной процедурой диалогового окна - это приведет к рекурсивным вызовам этих двух функций.
См. также
DefWindowProc, GetClassInfo, RegisterClass, WNDCLASS .
GetDialogBaseUnits
Функция GetDialogBaseUnits возвращает базовые координаты диалогового окна, используемые Windows для создания диалоговых окон. И Windows, и приложения используют эти координаты для преобразования ширины и высоты диалоговых окон и находящихся в них элементов управления из оконных координат, указанных в шаблонах диалоговых окон, в пиксели, и обратно.
LONG GetDialogBaseUnits ( VOID )
Параметры
Функция не имеет параметров.
Возвращаемые значения
Возвращается 32-битное значение, содержащее базовые координаты диалогового окна. Младшее слово возвращаемого значения содержит горизонтальные базовые координаты диалогового окна, старшее слово - вертикальные.
Комментарии
Горизонтальные базовые координаты диалогового окна равны средней ширине, в пикселях, символов системного шрифта, вертикальные - средней высоте символов системного шрифта. К тому же, горизонтальная базовая координата равна четырем горизонтальным оконным координатам диалогового окна, вертикальная базовая координата - восьми вертикальным оконным координатам диалогового окна. Таким образом, преобразование оконных координат в пиксели происходит по формулам:
пиксель X = (диалоговая_координата X * базовая_координата X ) / 4
пиксель Y = (диалоговая_координата Y * базовая_координата Y ) / 8
Аналогично происходит преобразование пикселей в оконные координаты:
диалоговая_координата X = (пиксель X * 4) / базовая_координата X
диалоговая_координата Y = (пиксель Y * 8) / базовая_координата Y
См. также
MapDialogRect .
GetDlgCtrlID
Функция GetDlgCtrlID возвращает идентификатор заданного элемента управления.
int GetDlgCtrlID (
HWND hwndCtl // дескриптор элемента управления
);
Параметры
hwndCtl– идентифицирует элемент управления.
Возвращаемые значения
В случае успеха возвращается идентификатор элемента управления.
В случае неудачи возвращается NULL . Вызов функции также закончится неудачей при неверном значении параметра hwndCtl .
Комментарии
GetDlgCtrlID также принимает в качестве параметров и дескрипторы дочерних окон, наравне с дескрипторами элементов управления в диалоговых окнах. Приложение устанавливает идентификатор для дочернего окна, присваивая значение идентификатора параметру hMenu при вызове функций CreateWindow или CreateWindowEx .
Хотя функция GetDlgCtrlID может вернуть значение в случае, если параметр hwndCtl идентифицирует окно верхнего уровня, такие окна не могут иметь идентификаторов и, соответственно, не будет возвращено правильного значения.
См . также
CreateWindow, CreateWindowEx, GetDlgItem .
Мэйлслоты
CreateMailslot
Функция CreateMailslot создает мэйлслот с указанным именем и возвращает дескриптор, который мэйлслотовый сервер может использовать для выполнения операций над мэйлслотом. Мэйлслот локален относительно компьютера, который его создал. Если мэйлслот с указанным именем существует, то происходит ошибка.
HANDLE CreateMailslot (
LPCTSTR lpName , // указатель на строку с именем мэйлслота
DWORD nMaxMessageSize , // максимальный размер сообщения
DWORD lReadTimeout , // миллисекунды до тайм - аута чтения
LPSECURITY_ATTRIBUTES lpSecurityAttributes // указатель
// на структуру безопасности
);
Параметры
lpName– указывает на завершающуюся нулем строку, определяющую имя мэйлслота. Строка должна иметь следующий вид:
\\.\mailslot\[path]name
Поле name должно быть уникальным. Имя может включать множественные уровни псевдодиректорий, разделенных символами обратного слэша. Например, правильными именами являются \\.\ mailslot \ example_mailslot_name и \\.\mailslot\abc\def\ghi .
nMaxMessageSize– определяет максимальный размер сообщения в байтах, которое может быть записано в мэйлслот. Для указания того, что сообщение может быть любого размера, установите значение этого параметра в нуль.