Определение диалогового окна в файле DLGBOX.RC |
|||||||||
TESTDIALOG DIALOGEX 20, 20, 180, 70 STYLE DS MODALFRAME I WS POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Test Dialog" FONT 8, "MS Sans Serif" BEGIN RTEXT "Edit Field 1: " ,-1,36,8,45,8 EDITTEXT IDC EDIT1,83,6,61,13,ES AUTOHSCROLL | WS_BORDER RTEXT "Edit Field 2: " ,-1,36,24,45,8 EDITTEXT IDC EDIT2,83,22,61,13,ES_AUTOHSCROLL I WS_BORDER PUSHBUTTON "OK" ,IDOK,33,50,50,14 PUSHBUTTON "Cancel" , IDCANCEL, 95,50,50 , 14 ,WS_GROUP END |
|||||||||
фрагмент файла DLGBOX.C |
|||||||||
См. \local-sources\chap08\0fl-07.txt |
|||||||||
DialogBoxIndirect * Windows 98 + Windows 2000 |
|||||||||
Описание |
Функция DialogBoxIndirect аналогична функции DialogBox, за исключением того, что данные ресурса диалогового окна должны быть указаны с помощью дескриптора памяти, а не имени ресурса. Шаблон диалогового окна в памяти может быть модифицирован в целях изменения диалогового окна в ходе выполнения приложения (это так называемое "динамическое диалоговое окно"). Дополнительная информация по этой теме приведена в разделе "Динамические диалоговые окна" в начале главы. Косвенное указание данных ресурса диалогового окна позволяет получить в программе больший контроль над тем, как происходит загрузка и исключение данных ресурса. |
||||||||
Синтаксис |
INT_PTR DialogBoxIndirect( HINSTANCE hlnstance, LPDLGTEMPLATE IpTemplate, HWND hWndParent, DLGPROC dlgprc ) |
||||||||
Параметры |
|||||||||
hlnstance |
HINSTANCE. Дескриптор экземпляра модуля, который создает диалоговое окно. |
||||||||
Ip Template |
LPDLGTEMPLATE. Указатель на глобальный объект памяти, который содержит шаблон, используемый для создания диалогового окна. Этот шаблон представлен в виде структуры DLGTEMPLATE, за которой следует одна или несколько структур DLGITEMTEMPLATE. |
||||||||
hWndParent |
HWND. Дескриптор окна, которое является владельцем данного диалогового окна. |
||||||||
dlgprc |
DLGPROC. Указатель на процедуру диалогового окна. Процедура диалогового окна обрабатывает сообщения для диалогового окна. Определение функции DialogProc приведено в описании функции CreateDialog. |
||||||||
Возвращаемое значение |
INT_PTR. Возвращаемое значение равняется параметру nResuh, переданному при вызове функции EndDialog. Возвращаемое значение равно -1, если диалоговое окно не может быть создано. |
||||||||
Включаемый файл |
winuser.h |
||||||||
См. также |
DialogBox, DialogBoxIndirectParam, DialogBoxParam, CreateDialoglndirect |
||||||||
Пример |
Следующий пример аналогичен приведенному в описании функции DialogBox, за исключением тех изменений, которые требуются для использования функции DialogBoxIndirect. Обратите внимание, что нет необходимости разблокировать или освобождать загруженный ресурс диалогового окна. |
||||||||
См. \local-sources\chap08\08-08.txt |
|||||||||
DialogBoxIndirectParam • Windows 98 * Windows 2000 |
|||||||||
Описание |
Функция DialogBoxIndirectParam аналогична функции DialogBoxIndirect, за исключением того, что в ней имеется дополнительный параметр. Этот дополнительный параметр позволяет передавать значение LPARAM (обычно дескриптор памяти) в качестве IParam, когда процедура диалогового окна принимает сообщение WM_INITDIALOG. |
||||||||
Синтаксис |
INT_PTR DialogBoxIndirectParam( HINSTANCE hlnstance, LPCDLGTEMPLATE IpTemplate, HWND hWndParent, DLGPROC dlgprc, LPARAM IParamlnit ) |
||||||||
Параметры |
|||||||||
hlnstance |
HINSTANCE. Дескриптор экземпляра модуля, который создает диалоговое окно. |
||||||||
lp Template |
LPCDLGTEMPLATE. Указатель на глобальный объект памяти, который содержит шаблон, используемый для создания диалогового окна. Этот шаблон представлен в виде структуры DLGTEMPLATE, за которой следует одна или несколько структур DLGITEMTEMPLATE. |
||||||||
hWndParent |
HWND. Дескриптор окна, которое является владельцем данного диалогового окна. |
||||||||
dlgprc |
DLGPROC. Указатель на процедуру диалогового окна. Процедура диалогового окна обрабатывает сообщения для диалогового окна. Определение функции DialogProc приведено в описании функции CreateDialog. |
||||||||
IParamlnit |
LPARAM. Значение, передаваемое функции DialogProc в сообщении WM_INITDIALOG. Обычно это значение применяется для передачи дескриптора блока памяти, содержащего данные, которые диалоговое окно должно использовать или изменить. |
||||||||
Возвращаемое значение |
INT_PTR. Возвращаемое значение равняется параметру nResult, переданному при вызове функции EndDialog. Возвращаемое значение равно -1, если диалоговое окно не может быть создано. |
||||||||
Включаемый файл |
winuser.h |
||||||||
См. также |
DialogBox, DialogBoxIndirect, DialogBoxParam |
||||||||
Соответствующие сообщения |
|||||||||
WMJNITDIALOG |
|||||||||
Пример |
В следующем примере создается такое же диалоговое окно, как в примерах, приведенных при описании функций DialogBox и DialogBoxIndirect. В этом случае применяется более сложная функция DialogBoxIndirectParam, которая позволяет передать данные для диалогового окна в определяемой пользователем структуре данных, получившей имя DLGDATA. Поскольку в этой функции применяется косвенная загрузка ресурса диалогового окна, о чем сообщает слово "indirect" в имени функции, данные ресурса обозначены указателем, полученным при выполнении комбинации функций LoadResource и LockResource. |
||||||||
См. \local-sources\chap08\08-09. txt |
|||||||||
DialoqBoxParam * Windows 98 * Windows 2000 |
|||||||||
Описание |
Функция DialogBoxParam аналогична функции DialogBox, за исключением того, что в ней имеется дополнительный параметр. Этот дополнительный параметр позволяет передавать значение LPARAM (обычно дескриптор памяти) в качестве IParam, когда процедура диалогового окна принимает сообщение WMJNITDIALOG. По-видимому, это одна из самых эффективных функций DialogBox для создания обычных диалоговых окон. Элемент данных LPARAM позволяет обмениваться данными между функцией WndProc программы и функцией диалогового окна без использования глобальных переменных. Функция DialogBoxParam проще в использовании по сравнению с функцией DialogBoxIndirectParam, поскольку для нее требуется только имя определения диалогового окна. Эта функция позволяет избежать сложностей, связанных с отдельной загрузкой данных ресурса диалогового окна, но исключает возможность модифицировать шаблон диалогового окна в памяти в ходе выполнения приложения. |
||||||||
Синтаксис |
INT_PTR DialogBoxParam( HINSTANCE hlnstance, LPCTSTR IpszTemplate. HWND hWndParent, DLGPROC dlgprc, LPARAM IParamlnit) |
||||||||
Параметры |
|||||||||
hlnstance |
HINSTANCE. Дескриптор экземпляра модуля, выполняемый файл которого содержит шаблон диалогового окна. |
||||||||
IpszTemplate |
LPCTSTR. Указатель на символьную строку, содержащую имя шаблона диалогового окна в файле ресурса. Если параметр указывает идентификатор ресурса, его старшее слово должно быть равно 0, а младшее слово должно содержать идентификатор. Для создания этого- значения применяется макрокоманда MAKEINTRESOURCE. |
||||||||
hWndParent |
HWND. Дескриптор родительского окна. Уничтожение родительского окна автоматически приводит к уничтожению немодального диалогового окна. |
||||||||
dlgprc |
DLGPROC. Указатель на процедуру диалогового окна. Процедура диалогового окна обрабатывает сообщения для диалогового окна. Определение функции DialogProc приведено в описании функции CreateDialog. |
||||||||
IParamlnit |
LPARAM. Значение, передаваемое функции DialogProc в сообщении WMJNITDIALOG. |
||||||||
Возвращаемое значение |
INT_PTR. Возвращаемое значение равняется параметру nResult, переданному при вызове функции EndDialog. Возвращаемое значение равно -1, если диалоговое окно не может быть создано. |
||||||||
Включаемый файл |
\vinuser.h |
||||||||
См. также |
DialogBox, DialogBoxIndirectParam, DialogBoxIndirect |
||||||||
Соответствующие сообщения |
|||||||||
WMJNITDIALOG |
|||||||||
Пример |
В следующем примере создается такое же диалоговое окно, как и в примере, приведенном при описании функции DialogBox. Однако в этом случае используется более сложная функция DialogBoxParam. В этом примере показано, как передавать данные для диалогового окна в определяемой пользователем структуре данных, которая носит имя DLGDATA. |
||||||||
См. \local-sources\chap08\08-10. txt |
|||||||||
DlgDirList • Windows 98 * Windows 2000 |
|||||||||
Описание |
Функция DlgDirList позволяет внести в элемент управления списком диалогового окна ряд имен файлов, которые соответствуют шаблону поиска файла. В этот список можно дополнительно включить отображенные диски с буквенным обозначением. , |
||||||||
Синтаксис |
int DlgDirList( HWND hwndDlg, LPTSTR IpszPath, int nIDListBox, (int nIDStaticPath, UINT uFileType ) |
||||||||
Параметры |
|||||||||
hwndDlg |
HWND. Дескриптор диалогового окна, которое содержит список. |
||||||||
IpszPath |
LPTSTR. Указатель на символьную строку с нулевым символом в конце, содержащую шаблон поиска. Например, строка "C:\DOCUMENTSV.DOC" указывает, что в листинг каталога должны быть внесены все файлы с расширением .DOC, которые находятся в подкаталоге DOCUMENTS. Допустимо также использовать имена путей UNC (Unified Naming Convention — Унифицированное соглашение об именовании). Например, строка "\\MACHINENAME\SHARENAME\DOCUMENTSV.DOC" указывает, что в листинг каталога должны войти все файлы с расширением DOC, которые находятся на указанном компьютере и ресурсе в подкаталоге DOCUMENTS. |
||||||||
nIDListBox |
int. Идентификатор списка. Если этот параметр равен 0, функция DlgDirList исходит из того, что список не существует, и не пытается его заполнить. |
||||||||
nWStaticPath |
int. Идентификатор статического элемента управления, предназначенного для отображения текущего диска и каталога. Если этот параметр равен 0, функция DlgDirList исходит из того, что такой элемент управления не существует. |
||||||||
uftleType |
UINT. Атрибуты имен файлов, которые должны быть отображены. Этот параметр должен принимать одно или несколько значений, показанных в табл. 8.3. |
||||||||
Возвращаемое значение |
int. Если листинг подготовлен (даже пустой), возвращаемое значение отлично от нуля. Если параметр IpszPathне содержит допустимый путь поиска файлов, возвращаемое значение — 0. |
||||||||
Таблица 8.3. ЗначенияпараметраuFileType функцииDlgDirList |
|||||||||
Значение |
Описание |
||||||||
DDL_ARCHIVE |
Включить архивированные файлы. |
||||||||
DDL_DIRECTORY |
Включить подкаталоги. Имена подкаталогов заключены в квадратные скобки ([]). |
||||||||
DDL_DRIVES |
Включить диски. Диски перечислены в виде [-Х-], где х—имя диска. |
||||||||
DDL_EXCLUSIVE |
Включить только файлы с указанными атрибутами. По умолчанию файлы, предназначенные для чтения/записи, вносятся в список, даже если не указан параметр DDL_READWRITE. |
||||||||
DDL_HIDDEN |
Включить скрытые файлы. |
||||||||
DDL_READONLY |
Включить файлы, предназначенные только для чтения. |
||||||||
DDL_READWRITE |
Включить файлы, предназначенные для чтения/записи, записи без дополнительных атрибутов. |
||||||||
DDL_SYSTEM |
Включить системные файлы. |
||||||||
DDL_POSTMSGS |
Отправить сообщения в очередь сообщений приложения. По умолчанию функция DlgDirList посылает сообщения непосредственно процедуре диалогового окна. |
||||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.