Win32 API. Справочник по стандартному диалоговому окну

ОГЛАВЛЕНИЕ

Следующие функции, структуры и сообщения связаны с общими диалоговыми окнами.


Функция ChooseColor

(ВыборЦвета)

Функция ChooseColor создает стандартное диалоговое окно Цвет(Color), которое дает возможность пользователю выбрать цвет.

Синтаксис

BOOL ChooseColor
(
LPCHOOSECOLOR lpcc // указывает на структуру с данными инициализации
);

Параметры
lpcc
Указатель на структуру CHOOSECOLOR, которая содержит информацию, используемую, чтобы инициализировать диалоговое окно. Когда функция ChooseColor возвращает значение, эта структура содержит информацию о цвете, выбранном пользователем.

Возвращаемые значения
Если пользователь щелкает мышью по кнопке OK диалогового окна, возвращаемое значение не нуль. Элемент rgbResult структуры CHOOSECOLOR содержит значения RGB цвета, выбранного пользователем.
Если пользователь отменяет или закрывает Диалоговое окно Цвет (Color), или происходит ошибка, возвращаемое значение нулевое. Чтобы получить дополнительные данные об ошибке, вызовите функцию CommDlgExtendedError, которая может возвратить одно из следующих значений:

CDERR_FINDRESFAILURE	CDERR_MEMLOCKFAILURE
CDERR_INITIALIZATION CDERR_NOHINSTANCE
CDERR_LOCKRESFAILURE CDERR_NOHOOK
CDERR_LOADRESFAILURE CDERR_NOTEMPLATE
CDERR_LOADSTRFAILURE CDERR_STRUCTSIZE
CDERR_MEMALLOCFAILURE

Замечания
Диалоговое окно Цвет (Color) не поддерживает палитры. Выбор цветов, предлагаемый диалоговым окном, ограничен цветами системы и размытыми версиями этих цветов.
Вы можете предоставить фильтр - процедуру CCHookProc для диалогового окна Цвет (Color). Фильтр - процедура может обрабатывать сообщения, посылаемые в диалоговое окно. Чтобы подключить фильтр - процедуру, установите флажок CC_ENABLEHOOK в элементе Flags структуры CHOOSECOLOR и установите адрес ее в элементе lpfnHook.

Смотри также
CCHookProc, CHOOSECOLOR, CommDlgExtendedError

Размещение и совместимость ChooseColor.

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека comdlg32.lib
Заголовочный файл commdlg.h
Уникод WinNT
Замечания по платформе Не имеется

 

Функция ChooseFont

(ВыборШрифта)

Функция ChooseFont создает стандартное диалоговое окно Шрифт (Font), которое дает возможность пользователю выбрать атрибуты для логического шрифта. Эти атрибуты включают в себя название шрифта, стиль (полужирный, курсивный, или обычный), размер в пунктах, эффекты (подчеркивание, зачеркивание и цвет текста) и написание (или набор символов).

Синтаксис

BOOL ChooseFont
(
LPCHOOSEFONT lpcf // указывает на структуру с данными инициализации
);

Параметры
lpcf
Указатель на структуру CHOOSEFONT, которая содержит информацию, используемую, чтобы инициализировать диалоговое окно. Когда ChooseFont возвращает значение, эта структура содержит информацию о выборе шрифта пользователем.

Возвращаемые значения
Если пользователь щелкнул по кнопке диалогового окна ОК, возвращается значение не нуль. Элементы структуры CHOOSEFONT показывают выбор пользователя.
Если пользователь прерывает работу или закрывает диалоговое окно Шрифт (Font) или происходит ошибка, возвращается значение нуль. Чтобы получить более подробную информацию об ошибке, вызовите функцию CommDlgExtendedError, которая может возвратить одно из ниже перечисленных значений:

CDERR_FINDRESFAILURE	CDERR_NOHINSTANCE
CDERR_INITIALIZATION CDERR_NOHOOK
CDERR_LOCKRESFAILURE CDERR_NOTEMPLATE
CDERR_LOADRESFAILURE CDERR_STRUCTSIZE
CDERR_LOADSTRFAILURE CFERR_MAXLESSTHANMIN
CDERR_MEMALLOCFAILURE CFERR_NOFONTS
CDERR_MEMLOCKFAILURE

Замечания
Вы можете предоставить фильтр - процедуру CFHookProc для диалогового окна Шрифт (Font). Фильтр - процедура может обрабатывать сообщения, передаваемые в диалоговое окно. Чтобы разрешить работу фильтр - процедуры, установите флажок CF_ENABLEHOOK в элементе Flags структуры CHOOSEFONT и определите адрес фильтр - процедуры в элементе lpfnHook.
Фильтр - процедура может передать в диалоговое окно сообщения WM_CHOOSEFONT_GETLOGFONT, WM_CHOOSEFONT_SETFLAGS и WM_CHOOSEFONT_SETLOGFONT, чтобы получить и установить текущие значения и флаги диалогового окна.

Смотри также
CFHookProc, CHOOSEFONT, CommDlgExtendedError, LOGFONT, WM_CHOOSEFONT_GETLOGFONT, WM_CHOOSEFONT_SETFLAGS, WM_CHOOSEFONT_SETLOGFONT

Размещение и совместимость ChooseFont

Windows NT	Да 
Win95 Да
Win32s Да
Импортируемая библиотека comdlg32.lib
Заголовочный файл commdlg.h
Уникод WinNT
Замечания по платформе Не имеется


Функция CommDlgExtendedError

(ОшибкиСтандартногоРасширенногоДиалоговогоОкна)

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

ChooseColor	GetOpenFileName
ChooseFont GetSaveFileName
FindText PrintDlg
ReplaceText PageSetupDlg

Синтаксис

DWORD CommDlgExtendedError(VOID)

Параметры
У этой функции нет параметров.

Возвращаемые значения
Если самый последний вызов функции стандартного диалогового окна завершился успешно, возвращаемое значение неопределенное.
Если функция стандартного диалогового окна возвратила значение ЛОЖЬ (FALSE), потому что пользователь закрыл или отменил работу диалогового окна, возвращаемое значение нулевое. Иначе, возвращаемое значение - код ошибки отличный от нуля. Для получения дополнительной информации, см. следующий раздел Замечания.

Замечания
Функция CommDlgExtendedError может возвращать общие коды ошибок для любой из функций стандартного диалогового окна. Кроме того, имеются коды ошибок, которые возвращаются только для специфического стандартного диалогового окна. Коды ошибки, возвращенные CommDlgExtendedError, определены в файле CDERR.H.
Следующие общие коды ошибок могут быть возвращены для любой из стандартных функций диалогового окна:

  • CDERR_DIALOGFAILURE - Диалоговое окно не возможно создать. Вызов функций стандартного диалогового окна в функции DialogBox потерпел неудачу. Например, эта ошибка происходит, если стандартное диалоговое окно вызывает определение недопустимого дескриптора окна.
  • CDERR_FINDRESFAILURE - Функция стандартного диалогового окна не сумела найти определяемый ресурс.
  • CDERR_INITIALIZATION - Функция стандартного диалогового окна потерпела неудачу в ходе инициализации. Эта ошибка часто происходит тогда, когда не доступен необходимый объем памяти.
  • CDERR_LOADRESFAILURE - Функция стандартного диалогового окна потерпела неудачу при загрузке заданного ресурса.
  • CDERR_LOADSTRFAILURE - Функция стандартного диалогового окна потерпела неудачу при загрузке заданной строки.
  • CDERR_LOCKRESFAILURE - Функция стандартного диалогового окна потерпела неудачу при включении заданного ресурса.
  • CDERR_MEMALLOCFAILURE - Функция стандартного диалогового окна не смогла распределить память для внутренних структур.
  • CDERR_MEMLOCKFAILURE - Функция стандартного диалогового окна не смогла закрепить память, связанную с дескриптором.
  • CDERR_NOHINSTANCE - Флажок ENABLETEMPLATE был установлен в элементе Flags структуры инициализации для соответствующего стандартного диалогового окна, но вы не сумели предоставить соответствующий дескриптор экземпляра.
  • CDERR_NOHOOK - Флажок ENABLEHOOK был установлен в элементе Flags структуры инициализации для соответствующего стандартного диалогового окна, но вы не сумели предоставить указатель на соответствующую фильтр - процедуру.
  • CDERR_NOTEMPLATE - Флажок ENABLETEMPLATE был установлен в элементе Flags структуры инициализации для соответствующего стандартного диалогового окна, но вы не сумели предоставить соответствующий шаблон.
  • CDERR_REGISTERMSGFAIL - Функция RegisterWindowMessage возвратила код ошибки, когда она была вызвана функцией стандартного диалогового окна.
  • CDERR_STRUCTSIZE - Элемент lStructSize структуры инициализации для соответствующего стандартного диалогового окна недопустим.

Ниже перечисленные коды ошибок могут быть возвращены для функции PrintDlg:

  • PDERR_CREATEICFAILURE - Функция PrintDlg потерпела неудачу, когда попыталась создать информационный контекст.
  • PDERR_DEFAULTDIFFERENT - Вы вызвали функцию PrintDlg с флажком DN_DEFAULTPRN, определенным в элементе wDefault структуры DEVNAMES, но принтер, описанный другими элементами структуры, не соответствует текущему заданному по умолчанию принтеру. (Эта ошибка происходит тогда, когда вы сохраняете структуру DEVNAMES, а пользователь заменяет заданный по умолчанию принтер, используя Панель управления (Windows)). Чтобы использовать принтер, описанный структурой DEVNAMES, сбросьте бит флажка DN_DEFAULTPRN и вызовите PrintDlg снова. Чтобы использовать заданный по умолчанию принтер, замените структуру DEVNAMES (и структуру DEVMODE, если она существует) значением ПУСТО (NULL) и вызовите PrintDlg снова.
  • PDERR_DNDMMISMATCH - Данные в структурах DEVMODE и DEVNAMES описывают два различных принтера.
  • PDERR_GETDEVMODEFAIL - Драйвер принтера при инициализации структуры DEVMODE потерпел неудачу. (Этот код ошибки применяется только тогда, когда драйверы принтера описаны в Windows версии 3.0 и выше).
  • PDERR_INITFAILURE - Функция PrintDlg потерпела неудачу в ходе инициализации, и больше нет специфического расширенного кода ошибки, который описывает сбой. Это событие генерирует код ошибки для функции заданный по умолчанию.
  • PDERR_LOADDRVFAILURE - Функция PrintDlg не сумела загрузить драйвер устройства для заданного принтера.
  • PDERR_NODEFAULTPRN - Принтера по умолчанию не существует.
  • PDERR_NODEVICES - Драйверы принтера не были найдены.
  • PDERR_PARSEFAILURE - Функция PrintDlg не сумела разобрать строчки в разделе [devices] файла WIN.INI.
  • PDERR_PRINTERNOTFOUND - Раздел [devices] файла WIN.INI не содержит записи для требуемого принтера.
  • PDERR_RETDEFFAILURE - Флажок PD_RETURNDEFAULT был определен в элементе Flags структуры PRINTDLG, однако элемент hDevMode, или hDevNames не был установлен в значение ПУСТО (NULL).
  • PDERR_SETUPFAILURE - Функция PrintDlg не сумела загрузить требуемые ресурсы.

Ниже перечислены коды ошибок, которые могут быть возвращены функцией ChooseFont:

  • CFERR_MAXLESSTHANMIN - Размер, заданный в элементе nSizeMax структуры CHOOSEFONT меньше, чем размер установленный в элементе nSizeMin.
  • CFERR_NOFONTS - Шрифты не существуют.

Ниже перечислены коды ошибок, которые могут быть возвращены функциями GetOpenFileName и GetSaveFileName:

  • FNERR_BUFFERTOOSMALL - Буфер, указанный элементом lpstrFile структуры OPENFILENAME слишком маленький для имени файла, заданного пользователем. Первые два байта буфера lpstrFile содержат целочисленное значение, определяющее размер, в байтах (версия ANSI) или символах (версия Уникода), необходимое, чтобы принять полностью имя файла.
  • FNERR_INVALIDFILENAME - Недопустимое имя файла.
  • FNERR_SUBCLASSFAILURE - Попытка поделить на подклассы окно списка потерпела неудачу, потому что было не доступно необходимое количество памяти.

Ниже перечислены коды ошибок, которые могут быть возвращены функциями FindText и ReplaceText:

  • FRERR_BUFFERLENGTHZERO - Элемент структуры FINDREPLACE указывает на недопустимый буфер.

Смотри также
ChooseColor, CHOOSECOLOR, ChooseFont, CHOOSEFONT, DEVMODE, DEVNAMES, DialogBox, FINDREPLACE, FindText, GetOpenFileName, GetSaveFileName, OPENFILENAME, PageSetupDlg, PAGESETUPDLG, PrintDlg, PRINTDLG, RegisterWindowMessage, ReplaceText.

Размещение и совместимость CommDlgExtendedError

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека comdlg32.lib
Заголовочный файл commdlg.h
Уникод Нет
Замечания по платформе Не имеется


Функция FindText

(НайтиТекст)

Функция FindText создает определенное системой не модальное диалоговое окно, которое позволяет пользователю, определять строку для поиска и используемые параметры, когда происходит поиск текста в документе.

Синтаксис

HWND FindText
(
LPFINDREPLACE lpfr // указывает на структуру с данными инициализации
);

Параметры
lpfr
Указатель на структуру FINDREPLACE, которая содержит информацию, используемую для инициализации диалогового окна. Диалоговое окно использует эту структуру для передачи информации о вводе данных пользователем в вашу прикладную программу. Более подробную информацию можно увидеть в разделе Замечания, расположенном ниже.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - дескриптор окна блока диалога. Вы можете использовать дескриптор окна для установки связи или закрытия диалогового окна.
Если функция потерпела неудачу, возвращаемое значение ПУСТО (NULL). Чтобы получить расширенную информацию об ошибке, вызовите функцию CommDlgExtendedError. CommDlgExtendedError может возвратить один из следующих кодов ошибки:

CDERR_FINDRESFAILURE	CDERR_MEMLOCKFAILURE
CDERR_INITIALIZATION CDERR_NOHINSTANCE
CDERR_LOCKRESFAILURE CDERR_NOHOOK
CDERR_LOADRESFAILURE CDERR_NOTEMPLATE
CDERR_LOADSTRFAILURE CDERR_STRUCTSIZE
CDERR_MEMALLOCFAILURE FRERR_BUFFERLENGTHZERO

Замечания
Функция FindText не выполняет операцию поиска. Вместо этого, диалоговое окно посылает зарегистрированные сообщения FINDMSGSTRING оконной процедуре окна владельца диалогового окна. Когда вы создаете диалоговое окно, элемент hwndOwner структуры FINDREPLACE идентифицирует окно владельца.
Перед вызовом FindText, вы должны вызвать функцию RegisterWindowMessage, чтобы получить идентификатор для сообщения FINDMSGSTRING. Процедура диалогового окна использует этот идентификатор, чтобы послать сообщения, когда пользователь щелкает мышью по кнопке Искать дальше (Find Next), или когда диалоговое окно закрывается. Параметр lParam сообщения FINDMSGSTRING содержит указатель на структуру FINDREPLACE. Элемент Flags этой структуры указывает событие, которое вызвало сообщение. Другие элементы структуры указывают ввод данных пользователем.
Если вы создаете диалоговое окно Найти (Find), вы должны также использовать функцию IsDialogMessage в основном цикле обработки сообщений вашей прикладной программы, чтобы гарантировать, что диалоговое окно правильно обрабатывает вводимые данные с клавиатуры, типа клавиш TAB И ESC. IsDialogMessage возвращает значение, которое указывает, обработало ли диалоговое окно Найти (Find) сообщение.
Вы можете предоставить фильтр - процедуру FRHookProc для диалогового окна Найти (Find). Фильтр - процедура может обрабатывать сообщения, посылаемые в диалоговое окно. Чтобы разрешить действие фильтр - процедуры, установите флажок FR_ENABLEHOOK в элементе Flags структуры FINDREPLACE и установите адрес этой процедуры в элементе lpfnHook.

Смотри также CommDlgExtendedError, FINDMSGSTRING, FINDREPLACE, FRHookProc, IsDialogMessage, RegisterWindowMessage, ReplaceText.

Размещение и совместимость FindText

Windows 			NT	Да 
Win95 Да
Win32s Да
Импортируемая библиотека comdlg32.lib
Заголовочный файл commdlg.h
Уникод WinNT
Замечания по платформе Не имеется


Функция GetFileTitle

(ПолучитьНазваниеФайла)

Функция GetFileTitle возвращает имя файла, идентифицированного при помощи параметра lpszFile.

Синтаксис

short GetFileTitle
(
LPCTSTR lpszFile, // указатель на полный путь и имя файла для файла
LPTSTR lpszTitle, // указатель на буфер, который принимает имя файла
WORD cbBuf // длина буфера
);

Параметры
lpszFile
Указатель на имя и расположение файла.
lpszTitle
Указатель на буфер, в который функция скопирует имя файла.
cbBuf
Определяет длину буфера, указанного параметром lpszTitle, в символах/

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - ноль.
Если имя файла недопустимое, возвращаемое значение - отрицательное число.
Если буфер, на который указывает параметр lpszTitle слишком маленький, возвращаемое значение - положительное целое число, которое определяет требуемый размер буфера в байтах (для версии ANSI) или в символах (для версии Уникода). Требуемый размер буфера включает в себя символ нуль-терминатора.

Замечания
Функция GetFileTitle возвращает значение ошибки, если буфер, указанный параметром lpszFile, содержит любой из ниже перечисленных элементов:

  1. Пустую строку
  2. Строку, содержащую подстановочный знак (*), открывающую скобку ([) или закрывающую скобку (])
  3. Строку, которая заканчивается двоеточием (:/) или обратным слэшем (\)
  4. Строку, длина которой превышает длину буфера
  5. Недопустимый символ (например, пробел или непечатаемый символ)

Чтобы получать для имени файла буфер необходимого размера, вызовите функцию с установленными параметрами lpszTitle в значение ПУСТО (NULL) и cbBuf - в нуль. Функция возвратит требуемый размер.
GetFileTitle возвращает строку, которую система использовала бы, чтобы показать имя файла пользователю. Показываемое имя включает в себя расширение только в том случае, если, это является выбором пользователя для отображающихся имен файлов. Это означает, что возвращенная строка не может точно идентифицировать файл, если он используется при обращении к функциям файловой системы.
Если буфер lpszTitle слишком маленький, GetFileTitle возвращает размер, требуемый, чтобы удержать отображаемое имя. Нет никакой гарантии согласованости между требуемым размером и символами, первоначально определяемыми в буфере lpszFile. При перенесении прикладных программ в Windows 95 и Windows NT, разработчики должны будут модифицировать любой код, который предполагает такое поведение в предыдущих версиях операционной системы. Наиболее общий случай - код, который преднамеренно вызывает GetFileTitle с установленным lpszTitle в значение ПУСТО (NULL) и cbBuf, установленный в нуль, а затем использует возвращаемое значение как индекс в строке lpszFile. Эта методика больше не поддерживается. Вы можете обычно достичь сходных результатов (и лучшей производительности) с библиотечными функциями этапа выполнения программы таких, как strrchr, wcsrchr, и _mbsrchr.

Смотри также
GetOpenFileName, GetSaveFileName

Размещение и совместимость GetFileTitle

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека comdlg32.lib
Заголовочный файл commdlg.h
Уникод WinNT
Замечания по платформе Не имеется


Функция GetOpenFileName

(ПолучитьИмяОткрытогоФайла)

Функция GetOpenFileName создает стандартное диалоговое окно Открыть (Open), которое дает возможность пользователю определить диск, каталог и имя файла или ряд файлов, чтобы открыть.

Синтаксис

BOOL GetOpenFileName
(
LPOPENFILENAME lpofn // адрес структуры с данными инициализации
);

Параметры
lpofn
Указатель на структуру OPENFILENAME, которая содержит информацию, используемую для инициализации диалогового окна. Когда GetOpenFileName возвращает значение, эта структура содержит информацию о файле, выбранном пользователем.

Возвращаемые значения
Если пользователь определяет имя файла и щелкает по кнопке ОК, возвращаемое значение не нуль. Буфер, указанный элементом lpstrFile структуры OPENFILENAME содержит полный путь и имя файла, которые определил пользователь.
Если пользователь прервал работу или закрыл диалоговое окно Открыть (Open) или произошла ошибка, возвращаемое значение - ноль. Чтобы получить расширенную информацию об ошибке, вызовите функцию CommDlgExtendedError, которая может возвратить одно из ниже перечисленных значений:

CDERR_FINDRESFAILURE	CDERR_NOHINSTANCE
CDERR_INITIALIZATION CDERR_NOHOOK
CDERR_LOCKRESFAILURE CDERR_NOTEMPLATE
CDERR_LOADRESFAILURE CDERR_STRUCTSIZE
CDERR_LOADSTRFAILURE FNERR_BUFFERTOOSMALL
CDERR_MEMALLOCFAILURE FNERR_INVALIDFILENAME
CDERR_MEMLOCKFAILURE FNERR_SUBCLASSFAILURE

Замечания
По умолчанию Windows 95 и Windows NT версии 4.0 показывают новую версию диалогового окна Открыть, которое обеспечивает пользовательский интерфейс со свойствами, которые похожи на Проводник Windows. Вы можете предоставить диалоговому окну Открыть в стиле Проводника фильтр - процедуру OFNHookProc. Чтобы разрешить работу фильтр - процедуре, установите флажки OFN_EXPLORER и OFN_ENABLEHOOK в элементе Flags структуры OPENFILENAME и определите ее адрес в элементе lpfnHook.
Windows 95 и Windows NT 4.0 продолжают поддерживать диалоговое окно Открыть для приложений, которые хотят поддерживать пользовательский интерфейс совместимый с пользовательским интерфейсом Windows 3.1 или Windows NT 3.51. Чтобы показать диалоговое окно Открыть старого стиля, разрешите работу фильтр - процедуре OFNHookProcOldStyle и гарантируйте, что флажок OFN_EXPLORER не установлен.

Смотри также
CommDlgExtendedError, GetSaveFileName, OFNHookProc, OFNHookProcOldStyle, OPENFILENAME

Размещение и совместимость GetOpenFileName

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека comdlg32.lib
Заголовочный файл commdlg.h
Уникод WinNT
Замечания по платформе Не имеется


Функция GetSaveFileName

(ПолучитьСохраненноеИмяФайла)

Функция GetSaveFileName создает стандартное диалоговое окно Сохранить (Save), которое позволяет пользователю определить диск, каталог и имя файла, которое нужно сохранить.

Синтаксис

BOOL GetSaveFileName
(
LPOPENFILENAME lpofn // адрес структуры данными инициализации
);

Параметры
lpofn
Указатель на структуру OPENFILENAME, которая содержит информацию, используемую, чтобы инициализировать диалоговое окно. Когда GetSaveFileName возвращает значение, эта структура содержит информацию о выбранном пользователем файле.

Возвращаемые значения
Если пользователь определяет имя файла и щелкает мышью по кнопке OK, возвращаемое значение не нуль. Буфер, указанный в элементе lpstrFile структуры OPENFILENAME содержит полный путь и имя файла, определенного пользователем.
Если пользователь прерывает работу или закрывает диалоговое окно Сохранить (Save) или происходит ошибка, возвращаемое значение - нуль. Чтобы получить дополнительную информацию об ошибке, вызовите функцию CommDlgExtendedError, которая может возвратить одно из ниже перечисленных значений:

CDERR_FINDRESFAILURE	CDERR_NOHINSTANCE
CDERR_INITIALIZATION CDERR_NOHOOK
CDERR_LOCKRESFAILURE CDERR_NOTEMPLATE
CDERR_LOADRESFAILURE CDERR_STRUCTSIZE
CDERR_LOADSTRFAILURE FNERR_BUFFERTOOSMALL
CDERR_MEMALLOCFAILURE FNERR_INVALIDFILENAME
CDERR_MEMLOCKFAILURE FNERR_SUBCLASSFAILURE

Замечания
По умолчанию, Windows 95 и Windows NT версии 4.0 показывают новую версию диалогового окна Сохранить (Save), чтобы обеспечить пользовательский интерфейс со свойствами, которые похожи на Проводник Windows. Вы можете обеспечить диалоговое окно Сохранить (Save) в стиле Проводника фильтр - процедурой OFNHookProc. Чтобы разрешить работу фильтр - процедуры, установите флажки OFN_EXPLORER и OFN_ENABLEHOOK в элементе Flags структуры OPENFILENAME и установить ее адрес в элементе lpfnHook.
Windows 95 и Windows NT 4.0 продолжает поддерживать диалоговое окно Сохранить (Save) старого стиля для прикладных программ, которые хотят поддерживать пользовательский интерфейс совместимый с пользовательским интерфейсом Windows 3.1 или Windows NT 3.51. Чтобы показать диалоговое окно Сохранить (Save) в старом стиле, разрешите работу фильтр - процедуре OFNHookProcOldStyle и гарантируйте, что флажок OFN_EXPLORER не установлен.

Смотри также
CommDlgExtendedError, GetOpenFilename, OFNHookProc, OFNHookProcOldStyle, OPENFILENAME

Размещение и совместимость GetSaveFileName

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека comdlg32.lib
Заголовочный файл commdlg.h
Уникод WinNT
Замечания по платформе Не имеется


Функция PageSetupDlg

(ДиалоговоеОкноПараметрыСтраницы)

Функция PageSetupDlg создает диалоговое окно Параметры страницы (Page Setup), которое разрешает действия пользователю, чтобы установить атрибуты страницы для печати. Эти атрибуты включают в себя размер бумаги и источник, ориентацию страницы (портретную или альбомную) и ширину полей страницы.

Синтаксис

BOOL PageSetupDlg
(
LPPAGESETUPDLG lppsd // указатель на структуру
);

Параметры
lppsd
Указатель на структуру PAGESETUPDLG, которая содержит информацию, используемую для инициализации диалогового окна. Когда функция возвращает значение, структура принимает информацию о выборе пользователя.

Возвращаемые значения
Если пользователь щелкает мышью по кнопке OK, возвращаемое значение не нуль. Элементы структуры PAGESETUPDLG, указанные параметром lppsd, определяют выбор пользователя.
Если пользователь прерывает работу или закрывает диалоговое окно Параметры страницы (Page Setup) или происходит ошибка, возвращаемое значение нулевое. Чтобы получать дополнительные данные об ошибках, используйте функцию CommDlgExtendedError

Смотри также
CommDlgExtendedError, PagePaintHook, PAGESETUPDLG, PageSetupHook

Размещение и совместимость PageSetupDlg

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека comdlg32.lib
Заголовочный файл commdlg.h
Уникод WinNT
Замечания по платформе Не имеется


Функция PrintDlg

(ДиалоговоеОкноПечать)

Функция PrintDlg показывает диалоговое окно Печать (Print) или диалоговое окно Установки для печати (Print Setup). Диалоговое окно Печать (Print) дает возможность пользователю установить свойства отдельного задания по выводу на печать.
Диалоговое окно Установки для печати (Print Setup) не должно использоваться в новых прикладных программах. Оно заменяется стандартным диалоговым окном Параметры Страницы (Page Setup), создаваемое функцией PageSetupDlg.

Синтаксис

BOOL PrintDlg
(
LPPRINTDLG lppd // адрес структуры с данными инициализации
);

Параметры
lppd
Указатель на структуру PRINTDLG, которая содержит информацию, используемую, чтобы инициализировать диалоговое окно. Когда PrintDlg возвращает значение, эта структура содержит информацию о выборе пользователя.

Возвращаемые значения
Если пользователь щелкает мышью по кнопке OK, возвращаемое значение не нуль. Элементы структуры PRINTDLG, указанные параметром lppd показывают выбор пользователя.
Если пользователь прерывает работу или закрывает диалоговое окно Печать (Print) или Установки для печати (Print Setup) или происходит ошибка, возвращаемое значение нулевое. Чтобы получать дополнительные данные об ошибках, используйте функцию CommDlgExtendedError, которая может возвратить одно из ниже перечисленных значений:

CDERR_FINDRESFAILURE	PDERR_CREATEICFAILURE
CDERR_INITIALIZATION PDERR_DEFAULTDIFFERENT
CDERR_LOADRESFAILURE PDERR_DNDMMISMATCH
CDERR_LOADSTRFAILURE PDERR_GETDEVMODEFAIL
CDERR_LOCKRESFAILURE PDERR_INITFAILURE
CDERR_MEMALLOCFAILURE PDERR_LOADDRVFAILURE
CDERR_MEMLOCKFAILURE PDERR_NODEFAULTPRN
CDERR_NOHINSTANCE PDERR_NODEVICES
CDERR_NOHOOK PDERR_PARSEFAILURE
CDERR_NOTEMPLATE PDERR_PRINTERNOTFOUND
CDERR_STRUCTSIZE PDERR_RETDEFFAILURE

Замечания
Если фильтр - процедура (указанная элементом lpfnPrintHook или lpfnSetupHook структуры PRINTDLG) обрабатывает сообщение WM_CTLCOLORDLG, она должна возвратить дескриптор для кисти, которая должна использоваться, чтобы окрасить фон элемента управления.

Смотри также
CommDlgExtendedError, CreateDC, DOCINFO, PRINTDLG, PrintHookProc, SetupHookProc, StartDoc, WM_CTLCOLORDLG

Размещение и совместимость PrintDlg

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека comdlg32.lib
Заголовочный файл commdlg.h
Уникод WinNT
Замечания по платформе Не имеется

 

Функция ReplaceText

(ЗаменитьТекст)

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

Синтаксис

HWND ReplaceText
(
LPFINDREPLACE lpfr // указатель на структуру с данными инициализации
);

Параметры
lpfr
Указатель на структуру FINDREPLACE, которая содержит информацию, используемую, чтобы инициализировать диалоговое окно. Диалоговое окно использует эту структуру, чтобы послать информацию о вводе данных пользователем в вашу прикладную программу. Для получения дополнительной информации, см. следующий раздел Замечаний.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - дескриптор окна блока диалога. Вы можете использовать дескриптор окна, чтобы установить связь диалоговым окном или закрыть его.
Если функция потерпит неудачу, возвращаемое значение - ПУСТО (NULL). Чтобы получить расширенные данные об ошибках, вызовите функцию CommDlgExtendedError, которая может возвратить один из ниже перечисленных кодов ошибки:

CDERR_FINDRESFAILURE	CDERR_MEMLOCKFAILURE
CDERR_INITIALIZATION CDERR_NOHINSTANCE
CDERR_LOADRESFAILURE CDERR_NOHOOK
CDERR_LOADSTRFAILURE CDERR_NOTEMPLATE
CDERR_LOCKRESFAILURE CDERR_STRUCTSIZE
CDERR_MEMALLOCFAILURE FRERR_BUFFERLENGTHZERO

Замечания
Функция ReplaceText не выполняет операцию замены текста. Вместо этого, диалоговое окно посылает зарегистрированные сообщения FINDMSGSTRING оконной процедуре окна владельца диалогового окна. Когда вы создаете диалоговое окно, элемент hwndOwner структуры FINDREPLACE идентифицирует окно владельца.
Перед вызовом ReplaceText, вы должны вызвать функцию RegisterWindowMessage, чтобы получить идентификатор для сообщения FINDMSGSTRING. Процедура диалогового окна использует этот идентификатор, чтобы посылать сообщения, когда пользователь щелкает по кнопкам Искать Дальше (Find Next), Заменить (Replace), или Заменить Все (Replace All), или когда диалоговое окно закрывается. Параметр lParam сообщения FINDMSGSTRING содержит указатель на структуру FINDREPLACE. Элемент Flags этой структуры указывает событие, которое вызвало сообщение. Другие элементы структуры указывают введенные данные пользователем.
Если вы создаете диалоговое окно Заменить (Replace), вы должны также использовать функцию IsDialogMessage в основном цикле обработки сообщений вашей прикладной программы, чтобы гарантировать, что диалоговое окно правильно обрабатывает ввод данных с клавиатуры, таких как клавиши TAB и ESC. Функция IsDialogMessage возвращает значение, которое указывает, обработало ли диалоговое окно Заменить (Replace) сообщение.
Вы можете предоставить для диалогового окна Заменить (Replace) фильтр - процедуру FRHOOKPROC. Фильтр - процедура может обрабатывать сообщения, посылаемые в диалоговое окно. Чтобы разрешать действие фильтр - процедуры, установите флажок FR_ENABLEHOOK в элементе Flags структуры FINDREPLACE и установите ее адрес в элементе lpfnHook.

Смотри также
CommDlgExtendedError, FINDREPLACE, FRHookProc, IsDialogMessage, RegisterWindowMessage, WM_CTLCOLORDLG

Размещение и совместимость ReplaceText

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека comdlg32.lib
Заголовочный файл commdlg.h
Уникод WinNT
Замечания по платформе Не имеется


Фильтр - процедура CCHookProc

Фильтр - процедура CCHookProc - определяемая программой или определенная библиотекой процедура повторного вызова, которая используется стандартным диалоговым окном Цвет (Color). Фильтр - процедура принимает сообщения или сообщения, предназначенные для заданной по умолчанию процедуры диалогового окна.

Синтаксис

UINT APIENTRY CCHookProc
(
HWND hdlg, // дескриптор окна блока диалога
UINT uiMsg, // код сообщения
WPARAM wParam, // параметр сообщения
LPARAM lParam // параметр сообщения
);

Параметры
hdlg
Дескриптор окна блока диалога Цвет (Color), для которого предназначено сообщение. uiMsg
Идентифицирует получаемое сообщение.
wParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
lParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
Если параметр uiMsg указывает на сообщение WM_INITDIALOG, lParam - указатель на структуру CHOOSECOLOR, содержащую значения, установленные, когда было создано диалоговое окно.

Возвращаемые значения
Если фильтр - процедура возвращает нуль, заданная по умолчанию процедура диалогового окна обрабатывает сообщение.
Если фильтр - процедура возвращает значение отличное от нуля, заданная по умолчанию процедура диалогового окна игнорирует сообщение.

Замечания
Когда вы используете функцию ChooseColor, чтобы создать диалоговое окно Цвет (Color), вы можете предоставить фильтр - процедуру CCHookProc, чтобы обрабатывать сообщения или предупреждения, предназначенные для процедуры диалогового окна. Чтобы разрешать действие фильтр - процедуры, используйте структуру CHOOSECOLOR, которую вы передали в функцию создающую диалоговое окно. Определите адрес фильтр - процедуры в элементе lpfnHook, и установите флажок CC_ENABLEHOOK в элементе Flags.
Заданная по умолчанию процедура диалогового окна обрабатывает сообщение WM_INITDIALOG перед передачей его в фильтр - процедуру. Все другие сообщения сначала принимает фильтр - процедура. Затем, возвращаемое значение фильтр - процедуры определяет, обрабатывает ли заданная по умолчанию процедура диалогового окна сообщение или игнорирует его.
Если фильтр - процедура обрабатывает сообщение WM_CTLCOLORDLG, она должна возвратить допустимый дескриптор кисти для закрашивания фона диалогового окна. Вообще, если фильтр - процедура обрабатывает какое-либо сообщение WM_CTLCOLOR*, она должна возвратить допустимый дескриптор кисти для закрашивания фона определяемого элемента управления.
Не вызывайте функцию EndDialog из фильтр - процедуры. Вместо этого, фильтр - процедура может вызывать функцию PostMessage, чтобы послать сообщение WM_COMMAND со значением IDABORT в процедуру диалогового окна. Регистрация IDABORT закрывает диалоговое окно и вынуждает функцию блока диалога возвратить значение ЛОЖЬ (FALSE). Если Вам нужно знать, почему фильтр - процедура закрыла диалоговое окно, вы должны предоставить свой собственный механизм связи между фильтр - процедурой и вашей прикладной программой.
Вы можете делить на подклассы стандартные элементы управления общего диалогового окна. Однако, и процедура стандартного диалогового окна может тоже делить на подклассы элементы управления. По этой причине, вы должны делить на подклассы элементы управления тогда, когда ваша фильтр - процедура обрабатывает сообщение WM_INITDIALOG. Это гарантирует, что ваша процедура подкласса получит определенные элементом управления сообщения раньше процедуры подкласса, установленной процедурой диалогового окна.
CCHookProc - метка - заместитель для определяемого программой или определенного библиотекой имени функции. Тип LPCCHOOKPROC - указатель на фильтр - процедуру CCHookProc.

Смотри также
ChooseColor, CHOOSECOLOR, EndDialog, PostMessage, WM_INITDIALOG, WM_CTLCOLORDLG

Размещение и совместимость CCHookProc

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека Определяемая пользователем
Заголовочный файл commdlg.h
Уникод Нет
Замечания по платформе LPCCHOOKPROC

 

Фильтр - процедура CFHookProc

Фильтр - процедура CFHookProc - определяемая программой или определенная библиотекой процедура повторного вызова, которая используется стандартным диалоговым окном Шрифт (Font). Фильтр - процедура принимает сообщения или сообщения, предназначенные для заданной по умолчанию процедуры диалогового окна.

Синтаксис

UINT APIENTRY CFHookProc
(
HWND hdlg, // дескриптор окна блока диалога
UINT uiMsg, // код сообщения
WPARAM wParam, // параметр сообщения
LPARAM lParam // параметр сообщения
);

Параметры
hdlg
Дескриптор окна блока диалога Шрифт (Font), для которого предназначено сообщение.
uiMsg
Идентифицирует полученное сообщение.
wParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
lParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
Если параметр uiMsg обозначает сообщение WM_INITDIALOG, lParam - указатель на структуру CHOOSEFONT, содержащую значения, которые были определены, когда было создано стандартное диалоговое окно.

Возвращаемые значения.
Если фильтр - процедура возвращает нуль, заданная по умолчанию процедура диалогового окна обрабатывает сообщение.
Если фильтр - процедура возвращает значение отличное от нуля, заданная по умолчанию процедура диалогового окна игнорирует сообщение.

Замечания
Когда вы используете функцию ChooseFont, чтобы создать Диалоговое окно Шрифт (Font), вы можете предоставить фильтр - процедуру CFHookProc, чтобы обработать сообщения или предупреждения, предназначенные для процедуры диалогового окна. Чтобы разрешить действие фильтр - процедуры, используйте структуру CHOOSEFONT, которую вы передали в функцию создания диалоговое окна. Установите адрес фильтр - процедуры в элементе lpfnHook, и установите флажок CF_ENABLEHOOK в элементе Flags.
Заданная по умолчанию процедура диалогового окна обрабатывает сообщение WM_INITDIALOG перед передачей его в фильтр - процедуру. Все другие сообщения, сначала принимает фильтр - процедура. Затем, возвращаемое значение фильтр - процедурой определяет, обрабатывает ли заданная по умолчанию процедура диалогового окна сообщение или игнорирует его.
Если фильтр - процедура обрабатывает сообщение WM_CTLCOLORDLG, она должна возвратить допустимый дескриптор кисти для закрашивания фона диалогового окна. Вообще, если фильтр - процедура обрабатывает какое-либо сообщение WM_CTLCOLOR*, она должна возвратить допустимый дескриптор кисти для закрашивания фона определяемого элемента управления.
Не вызывайте функцию EndDialog из фильтр - процедуры. Вместо этого, она может вызывать функцию PostMessage, чтобы послать сообщение WM_COMMAND со значением IDABORT в процедуру диалогового окна. Посылка IDABORT закрывает диалоговое окно и вынуждает функцию блока диалога возвратить значение ЛОЖЬ (FALSE). Если Вам нужно знать, почему фильтр - процедура закрыла диалоговое окно, вы должны предоставить свой собственный механизм связи между фильтр - процедурой и вашей прикладной программой.
Вы можете делить на подклассы стандартные элементы управления общего диалогового окна. Однако, и процедура стандартного диалогового окна может тоже делить на подклассы элементы управления. По этой причине, вы должны делить на подклассы элементы управления тогда, когда ваша фильтр - процедура обрабатывает сообщение WM_INITDIALOG. Это гарантирует, что ваша процедура подкласса получит определенные элементом управления сообщения раньше процедуры подкласса, установленной процедурой диалогового окна.
CFHookProc - метка - заместитель для определяемого программой или определенного библиотекой имени функции. Тип LPCFHOOKPROC - указатель на фильтр - процедуру CFHookProc.

Смотри также
ChooseFont, CHOOSEFONT, EndDialog, PostMessage, WM_INITDIALOG, WM_CTLCOLORDLG

Размещение и совместимость CFHookProc

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека Определяемая пользователем
Заголовочный файл commdlg.h
Уникод Нет
Замечания по платформе LPCFHOOKPROC


Фильтр - процедура FRHookProc

Фильтр - процедура FRHookProc - определяемая программой или определенная библиотекой процедура повторного вызова, которая используется стандартными диалоговыми окнами Найти (Find) и Заменить (Replace). Фильтр - процедура принимает сообщения или предупреждения, предназначенные для заданной по умолчанию процедуры диалогового окна.

Синтаксис

UINT APIENTRY FRHookProc
(
HWND hdlg, // дескриптор окна блока диалога
UINT uiMsg, // код сообщения
WPARAM wParam, // параметр сообщения
LPARAM lParam // параметр сообщения
);

Параметры
hdlg
Дескриптор окна стандартного блока диалога Найти (Find) или Заменить (Replace), для которых предназначены сообщения.
uiMsg
Идентифицирует полученное сообщение.
wParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
lParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
Если параметр uiMsg показывает сообщение WM_INITDIALOG, lParam - указатель на структуру FINDREPLACE, содержащую значения, которые были определены, когда было создано стандартное диалоговое окно.

Возвращаемые значения
Если фильтр - процедура возвращает нуль, заданная по умолчанию процедура диалогового окна обрабатывает сообщение.
Если фильтр - процедура возвращает значение отличное от нуля, заданная по умолчанию процедура диалогового окна игнорирует сообщение.

Замечания
Когда вы используете функции FindText или ReplaceText, чтобы создать стандартное диалоговое окно Найти (Find) или Заменить (Replace), вы можете предоставить фильтр - процедуру FRHookProc, чтобы обработать сообщения или предупреждения, предназначенные для процедуры диалогового окна. Чтобы разрешить действие фильтр - процедуры, используйте структуру FINDREPLACE, которую вы передали в функцию создания диалоговое окна. Установите адрес фильтр - процедуры в элементе lpfnHook, и установите флажок FR_ENABLEHOOK в элементе Flags.
Заданная по умолчанию процедура диалогового окна обрабатывает сообщение WM_INITDIALOG перед передачей его в фильтр - процедуру. Хотя все другие сообщения, сначала принимает фильтр - процедура. Затем, возвращаемое значение фильтр - процедурой определяет, обрабатывает ли заданная по умолчанию процедура диалогового окна сообщение или игнорирует его.
Если фильтр - процедура обрабатывает сообщение WM_CTLCOLORDLG, она должна возвратить допустимый дескриптор кисти для закрашивания фона диалогового окна. Вообще, если фильтр - процедура обрабатывает какое-либо сообщение WM_CTLCOLOR*, она должна возвратить допустимый дескриптор кисти для закрашивания фона определяемого элемента управления.
Не вызывайте функцию EndDialog из фильтр - процедуры. Вместо этого, фильтр - процедура может вызывать функцию PostMessage, чтобы послать сообщение WM_COMMAND со значением IDABORT в процедуру диалогового окна. Регистрация IDABORT закрывает диалоговое окно и вынуждает функцию блока диалога возвратить значение ЛОЖЬ (FALSE). Если Вам нужно знать, почему фильтр - процедура закрыла диалоговое окно, вы должны предоставить свой собственный механизм связи между фильтр - процедурой и вашей прикладной программой.
Вы можете делить на подклассы стандартные элементы управления стандартного диалогового окна. Однако, и процедура стандартного диалогового окна может тоже делить на подклассы элементы управления. По этой причине, вы должны делить на подклассы элементы управления тогда, когда ваша фильтр - процедура обрабатывает сообщение WM_INITDIALOG. Это гарантирует, что ваша процедура подкласса получит определенные элементом управления сообщения раньше процедуры подкласса, установленной процедурой диалогового окна.
FRHookProc - метка - заместитель для определяемого программой или определенного библиотекой имени функции. Тип LPFRHOOKPROC - указатель на фильтр - процедуру FRHookProc.

Смотри также
EndDialog, FINDREPLACE, FindText, PostMessage, ReplaceText, WM_INITDIALOG, WM_CTLCOLORDLG

Размещение и совместимость FRHookProc

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека Определяемая пользователем
Заголовочный файл commdlg.h
Уникод Нет
Замечания по платформе LPFRHOOKPROC

 

Фильтр - процедура OFNHookProc

Фильтр - процедура OFNHookProc это - определенная прикладной программой или библиотекой повторно вызываемая процедура, которую используют стандартные диалоговые окна Открыть (Open) или Сохранить как (Save As) в стиле Проводника. Фильтр - процедура принимает предупреждающие сообщения, передаваемые из стандартного диалогового окна. Фильтр - процедура принимает также сообщения для любых дополнительных элементов управления, которые определены вашими установками шаблона дочернего диалогового окна.
Если вы не установили флажок OFN_EXPLORER, когда создавали стандартное диалоговое окно Отрыть или Сохранить как, а вы хотите иметь фильтр - процедуру, то должны использовать такую процедуру старого стиля как OFNHookProcOldStyle. В этом случае, диалоговое окно должно иметь пользовательский интерфейс старого стиля.

Синтаксис.

UINT APIENTRY OFNHookProc
(
HWND hdlg, // дескриптор дочернего окна диалога
UINT uiMsg, // код сообщения
WPARAM wParam, // параметр сообщения
LPARAM lParam // параметр сообщения
);

Параметры
hdlg
Дескриптор дочернего диалогового окна блока диалога Открыть или Сохранить как. Используйте функцию GetParent, чтобы получить дескриптор окна блока диалога Открыть или Сохранить.
uiMsg
Идентифицирует полученное сообщение.
wParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
lParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
Если параметр uiMsg показывает сообщение WM_INITDIALOG, lParam указывает на структуру OPENFILENAME, содержащую значения определенные тогда, когда было создано диалоговое окно.

Возвращаемые значения
Если фильтр - процедура возвращает ноль, по умолчанию процедура блока диалога обрабатывает сообщение.
Если процедура возвращает не нулевое значение, по умолчанию процедура блока диалога игнорирует сообщение.
Для уведомительных сообщений CDN_SHAREVIOLATION и CDN_FILEOK, фильтр - процедура должна возвратить не нулевое значение, чтобы показать, что она использовала функцию SetWindowLong, которая установила не нулевое значение для DWL_MSGRESULT.

Замечания
Когда вы используете функции GetOpenFileName или GetSaveFileName, чтобы создать стандартное диалоговое окно Открыть (Open) или Сохранять Как (Save As) в стиле Проводника, вы можете предоставить фильтр - процедуру OFNHookProc. Чтобы разрешить ее действие, используйте структуру OPENFILENAME, которую вы передали в функцию создания диалогового окна. Установите указатель на фильтр - процедуру в элементе lpfnHook и установите флажок OFN_ENABLEHOOK в элементе Flags.
Если вы предоставляете фильтр - процедуру для стандартного диалогового окна в стиле Проводника, система создает блок диалога, который является потомком заданного по умолчанию диалогового окна. Фильтр - процедура действует как процедура диалогового окна для дочернего диалогового окна. Это дочернее диалоговое окно основано на шаблоне, который вы установили в структуре OPENFILENAME, или это - заданное по умолчанию дочернее диалоговое окно, если никакой шаблон не определен. Дочернее диалоговое окно создается, когда заданная по умолчанию процедура диалогового окна обрабатывает сообщение WM_INITDIALOG. После того, как дочернее диалоговое окно обрабатывает свое собственное сообщение WM_INITDIALOG, заданная по умолчанию процедура диалогового окна перемещает стандартные элементы управления, в случае необходимости, чтобы создать место для любых дополнительных элементов управления дочернего диалогового окна. Затем система передает уведомительное сообщение CDN_INITDONE фильтр - процедуре.
Фильтр - процедура не принимает сообщения, предназначенные для стандартных элементов управления заданного по умолчанию диалогового окна. Вы можете эти стандартные элементы управления поделить на подклассы, но это сомнительное действие, потому что оно может сделать вашу прикладную программу несовместимой с будущими версиями стандартного диалогового окна. Тем не менее, стандартные диалоговые окна в стиле Проводника, предоставляют набор сообщений, которые фильтр - процедура может использовать, чтобы контролировать и управлять диалоговым окном. Они включают набор уведомительных сообщений WM_NOTIFY, передаваемых из диалогового окна, также как и сообщения, которые вы можете пересылать, чтобы отыскать информацию из диалогового окна. Полный список этих сообщений, см. в статье "Фильтр - процедуры для стиля Проводника."
Если фильтр - процедура обрабатывает сообщение WM_CTLCOLORDLG, она должна возвратить допустимый дескриптор кисти для закрашивания фона диалогового окна. В большинстве случаев, если она обрабатывает какое-либо сообщение WM_CTLCOLOR*, то должна возвратить допустимый дескриптор кисти для закрашивания фона определяемого элемента управления.
Не вызывайте функцию EndDialog из фильтр - процедуры. Вместо этого, она может вызывать функцию PostMessage, чтобы в процедуру диалогового окна послать сообщение WM_COMMAND со значением IDABORT. Объявление IDABORT закрывает диалоговое окно и вынуждает функцию блока диалога возвратить значение ЛОЖЬ (FALSE). Если вам нужно узнать, почему фильтр - процедура закрыла диалоговое окно, вы должны предоставить свой собственный механизм связи между фильтр - процедурой и вашей прикладной программой.
OFNHookProc - метка - заместитель для определяемого программой или определенного библиотекой имени функции. Тип LPOFNHOOKPROC - указатель или на фильтр - процедуру OFNHOOKPROC или OFNHookProcOldStyle.

Смотри также
GetOpenFileName, GetSaveFileName, OFNHookProcOldStyle, OPENFILENAME

Размещение и совместимость OFNHookProc

Windows NT			Да 
Win95 Да
Win32s Нет
Импортируемая библиотека Определяется пользователем
Заголовочный файл -
Уникод Нет
Замечания по платформе LPOFNHOOKPROC


Фильтр - процедура OFNHookProcOldStyle

Фильтр - процедура OFNHookProcOldStyle - это определяемая программой или определяемая библиотекой процедура обратного вызова, которая используется стандартными диалоговыми окнами Открыть (Open) и Сохранить как (Save As). Фильтр - процедура принимает сообщения или предупреждения, предназначенные для процедуры блока диалога.
Если вы, при создании стандартного диалогового окна Открыть (Open) или Сохранить как (Save As), установили флажок OFN_EXPLORER и вам потребовалась фильтр - процедура, вы должны использовать фильтр - процедуру OFNHookProc в стиле Проводника.

Синтаксис

UINT APIENTRY OFNHookProcOldStyle
(
HWND hdlg, // дескриптор окна блока диалога
UINT uiMsg, // идентификатор сообщения
WPARAM wParam, // параметр сообщения
LPARAM lParam // параметр сообщения
);

Параметры
hdlg
Дескриптор окна блока диалога Открыть (Open) или Сохранить как (Save As) для которого предназначено сообщение.
uiMsg
Идентифицирует принимаемое сообщение.
wParam
Определяет дополнительную информацию о сообщении. Точное значение зависит значения параметра uiMsg.
lParam
Определяет дополнительную информацию о сообщении. Точное значение зависит значения параметра uiMsg.
Если параметр uiMsg показывает сообщение WM_INITDIALOG, lParam - указатель на структуру OPENFILENAME, содержащую значения установленные тогда, когда было создано диалоговое окно.

Возвращаемые значения
Если фильтр - процедура возвращает ноль, процедура диалогового окна по умолчанию обрабатывает сообщение.
Если фильтр - процедура возвращает значение отличное от нуля, процедура диалогового окна по умолчанию игнорирует сообщение.

Замечания
Когда вы используете функции GetOpenFileName или GetSaveFileName, чтобы создать диалоговое окно Открыть (Open) или Сохранить как (Save As) в старом стиле, вы можете предоставить фильтр - процедуру OFNHookProcOldStyle. Чтобы разрешить работу фильтр - процедуре, используй те структуру OPENFILENAME, которой вы передали обязанности по созданию блока диалога. Установите указатель на ее в элементе lpfnHook, а в элементе Flags установите флажок OFN_ENABLEHOOK.
По умолчанию процедура диалогового окна обрабатывает сообщение WM_INITDIALOG пред передачей его в фильтр - процедуру. Для всех других сообщений, фильтр - процедура первая принимает сообщение. Затем, возвращаемое значение ее определяет, обрабатывает ли заданная по умолчанию процедура диалогового окна сообщение или игнорирует его.
Если фильтр - процедура обрабатывает сообщение WM_CTLCOLORDLG, она должна возвратить дескриптор допустимой кисти для закрашивания фона диалогового окна. В общем случае, если фильтр - процедура обрабатывает какое-либо сообщение WM_CTLCOLOR*, она должна возвратить дескриптор допустимой кисти для закрашивания фона определяемого элемента управления.
Не вызывайте функцию EndDialog из фильтр - процедуры. Вместо этого она может вызвать функцию PostMessage, чтобы послать сообщение со значением IDABORT в процедуру диалогового окна. Извещение IDABORT закрывает диалоговое окно и заставляет функцию диалогового окна возвратить значение ЛОЖЬ (FALSE). Если вам нужно узнать почему фильтр - процедура закрыла блок диалога, вы должны предоставить свой собственный механизм связи между фильтр - процедурой и вашей прикладной программой.
Вы можете поделить на классы стандартные элементы управления обшего диалогового окна. Однако и процедура стандартного диалогового окна может также поделить на классы элементы управления. По этой причине, вы должны делить на классы элементы управления тогда, когда ваша фильтр - процедура обрабатывает сообщение WM_INITDIALOG. Это гарантирует то, что ваша процедура подкласса принимает определенные элементом управления сообщения перед процедурой подкласса, установленной процедурой диалогового окна.
OFNHookProcOldStyle - метка - заместитель для определяемого программой или определенного библиотекой имени функции. Тип LPOFNHOOKPROC - указатель на фильтр - процедуру или OFNHookProcOldStyle или OFNHookProc.

Смотри также
GetOpenFileName, GetSaveFileName, OFNHookProc, OPENFILENAME, WM_INITDIALOG

Размещение и совместимость OFNHookProcOldStyle

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека Определяется пользователем
Заголовочный файл -
Unicode Нет
Замечания по платформе LPOFNHOOKPROC

 

Фильтр - процедура PagePaintHook

Фильтр - процедура PagePaintHook - определяемая программой или определенная библиотекой процедура повторного вызова, которая используется диалоговым окном Параметры страницы (Page Setup). Фильтр - процедура принимает сообщения, которые позволяют вам настраивать рисунок макета страницы в диалоговом окне Параметры страницы (Page Setup).

Синтаксис

UINT APIENTRY PagePaintHook
(
HWND hdlg, // дескриптор окна блока диалога
UINT uiMsg, // идентификатор сообщения
WPARAM wParam, // параметр сообщения
LPARAM lParam // параметр сообщения
);

Параметры
hdlg
Дескриптор окна блока диалога Параметры страницы (Page Setup).
uiMsg
Идентифицирует принимаемое сообщение.
wParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
lParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.

Возвращаемые значения
Если фильтр - процедура возвращает значение ИСТИНА (TRUE) для любого из первых трех сообщений (WM_PSD_PAGESETUPDLG, WM_PSD_FULLPAGERECT или WM_PSD_MINMARGINRECT) в порядке следования прорисовки, то диалоговое окно не передает больше сообщений и не рисует в макете страницы до тех пор, пока в следующий раз системе не потребуется перерисовать макет страницы. Если фильтр - процедура возвращает значение ЛОЖЬ (FALSE) для всех трех сообщений, диалоговое окно передает остающиеся сообщения в порядке следования прорисовки.
Если фильтр - процедура возвращает значение ИСТИНА (TRUE) для любого из остающихся сообщений в порядке следования прорисовки, диалоговое окно не рисует соответствующую часть макета страницы. Если фильтр - процедура возвращает ЛОЖЬ (FALSE) для любого из этих сообщений, диалоговое окно рисует эту часть макета страницы.

Замечания
Диалоговое окно Параметры страницы (Page Setup) включает в себя изображение макета страницы, который показывает, как выбор пользователя воздействует на вид печати выводимых данных. Изображение состоит из прямоугольника, который представляет собой выбранный тип листа бумаги или конверта, с пунктирным прямоугольником, представляющим собой текущие поля и неполные (греческий текст) символы, чтобы показать, как смотрится текст на напечатанной странице. Когда вы используете функцию PageSetupDlg, чтобы создать диалоговое окно Параметры страницы (Page Setup), вы можете предоставить фильтр - процедуру PagePaintHook, чтобы настроить вид макета страницы.
Чтобы разрешить действие фильтр - процедуры, используйте структуру PAGESETUPDLG, которую вы передали в функцию создавшую диалоговое окно. Установите указатель на фильтр - процедуру в элементе lpfnPagePaintHook, а в элементе Flags установите флажок PSD_ENABLEPAGEPAINTHOOK.
Всякий раз, когда диалоговое окно собирается делать прорисовку содержания макета страницы, фильтр - процедура принимает следующие сообщения по порядку, в котором они перечислены:

  • WM_PSD_PAGESETUPDLG - Диалоговое окно собирается делать прорисовку макета страницы. Фильтр - процедура может использовать это сообщение, чтобы приготовиться рисовать содержание макета страницы.
  • WM_PSD_FULLPAGERECT - Диалоговое окно собирается делать прорисовку макета страницы. Это сообщение определяет ограничительный прямоугольник макета страницы.
  • WM_PSD_MINMARGINRECT - Диалоговое окно собирается делать прорисовку макета страницы. Это сообщение определяет прямоугольник поля.
  • WM_PSD_MARGINRECT - Диалоговое окно собирается делать прорисовку прямоугольника поля.
  • WM_PSD_GREEKTEXTRECT - Диалоговое окно собирается делать прорисовку греческого текста внутри прямоугольника ограниченного полями.
  • WM_PSD_ENVSTAMPRECT - Диалоговое окно собирается делать прорисовку в прямоугольнике страницы макета конверта с маркой. Это сообщение посылается только для конвертов.
  • WM_PSD_YAFULLPAGERECT - Диалоговое окно собирается делать прорисовку по адресу возврата части макета страницы конверта. Это сообщение посылается для конвертов и бумаги других размеров.

PagePaintHook - метка - заместитель для определяемого программой или определенного библиотекой имени функции. Тип LPPAGEPAINTHOOK - указатель на фильтр - процедуру PagePaintHook.

Смотри также
PageSetupDlg, PAGESETUPDLG

Размещение и совместимость PagePaintHook

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека Определяется пользователем
Заголовочный файл commdlg.h
Уникод Нет
Замечания по платформе LPOFNHOOKPROC


Фильтр - процедура PageSetupHook

Фильтр - процедура PageSetupHook является определенная программой или определяемая библиотекой процедура, которая используется стандартным диалоговым окном Параметры страницы (Page Setup). Фильтр - процедура принимает сообщения или предупреждения, предназначенные для процедуры блока диалога по умолчанию.

Синтаксис.

UINT APIENTRY PageSetupHook
(
HWND hdlg, // дескриптор окна блока диалога
UINT uiMsg, // идентификатор сообщения
WPARAM wParam, // параметр сообщения
LPARAM lParam // параметр сообщения
);

Параметры
hdlg
Дескриптор окна блока диалога Параметры страницы, для которого предназначено сообщение.
uiMsg
Идентифицирует принимаемое сообщение.
wParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
lParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
Если параметр uiMsg показывает сообщение WM_INITDIALOG, lParam - указатель на структуру PAGESETUPDLG, содержащую значения, которые определены, когда было создано стандартное диалоговое окно.

Возвращаемые значения
Если фильтр - процедура возвращает значение нуль, заданная по умолчанию процедура диалогового окна обрабатывает сообщение.
Если фильтр - процедура возвращает значение отличное от нуля, заданная по умолчанию процедура диалогового окна игнорирует сообщение.

Замечания
Когда вы используете функцию PageSetupDlg, чтобы создать стандартное диалоговое окно Параметры страницы, вы можете предоставить фильтр - процедуру PageSetupHook, чтобы обрабатывать сообщения или предупреждения, предназначенные для процедуры диалогового окна. Чтобы разрешить действие фильтр - процедуры, используйте структуру PAGESETUPDLG, которую вы передали в функцию создающую диалоговое окно. Установите указатель на фильтр - процедуру в элементе lpfnPageSetupHook, а в элементе Flags установите флажок PSD_ENABLEPAGESETUPHOOK.
Заданная по умолчанию процедура диалогового окна обрабатывает сообщение WM_INITDIALOG перед передачей его фильтр - процедуре. Хотя все другие сообщения, фильтр - процедура принимает первая. Затем, возвращаемое значение фильтр - процедуры определяет, обрабатывает ли заданная по умолчанию процедура диалогового окна сообщение или игнорирует его.
Если фильтр - процедура обрабатывает сообщение WM_CTLCOLORDLG, она должна возвратить допустимый дескриптор кисти для закрашивания фона диалогового окна. В большинстве случаев, если фильтр - процедура обрабатывает какое-либо сообщение WM_CTLCOLOR*, она должна возвратить допустимый дескриптор кисти для закрашивания фона определяемого элемента управления.
Не вызывайте функцию EndDialog из фильтр - процедуры. Вместо этого, она может вызывать функцию PostMessage, чтобы послать процедуре диалогового окна сообщение WM_COMMAND со значением IDABORT. Отправка сообщения IDABORT закрывает диалоговое окно и вынуждает функцию блока диалога возвратить значение ЛОЖЬ (FALSE). Если вам нужно узнать, почему фильтр - процедура закрыла диалоговое окно, вы должны предоставить свой собственный механизм связи между фильтр - процедурой и вашей прикладной программой.
Вы можете поделить на подклассы стандартные элементы управления общего диалогового окна. Однако, и процедура стандартного диалогового окна также может делить на подклассы элементы управления. По этой причине, вы должны делить на подклассы элементы управления тогда, когда ваша фильтр - процедура обрабатывает сообщение WM_INITDIALOG. Это гарантирует то, что ваша процедура подкласса принимает определенные элементом управления сообщения перед процедурой подкласса, установленной процедурой диалогового окна.
PageSetupHook - метка - заместитель для определяемого программой или определенного библиотекой имени функции. Тип LPPAGESETUPHOOK - указатель на фильтр - процедуру PageSetupHook.

Смотри также
EndDialog, PageSetupDlg, PAGESETUPDLG, PostMessage, WM_INITDIALOG, WM_CTLCOLORDLG

Размещение и совместимость PageSetupHook

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека Определяется пользователем
Заголовочный файл commdlg.h
Уникод Нет
Замечания по платформе LPPAGESETUPHOOK

 

Фильтр процедура PrintHookProc

Фильтр - процедура PrintHookProc - определяемая программой или определенная библиотекой процедура повторного вызова, которая используется стандартным диалоговым окном Печать (Print). Фильтр - процедура принимает сообщения или предупреждения, предназначенные для заданной по умолчанию процедуры диалогового окна.

Синтаксис

UINT APIENTRY PrintHookProc
(
HWND hdlg, // дескриптор окна блока диалога
UINT uiMsg, // идентификатор сообщения
WPARAM wParam, // параметр сообщения
LPARAM lParam // параметр сообщения
);

Параметры
hdlg
Дескриптор окна стандартного блока диалога Печать (Print), для которого предназначено сообщение.
uiMsg
Идентификация предаваемого сообщения.
wParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
lParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
Если параметр uiMsg показывает сообщение WM_INITDIALOG, lParam - указатель на структуру PRINTDLG, содержащую значения определенные тогда, когда было создано стандартное диалоговое окно.

Возвращаемые значения
Если фильтр - процедура возвращает значение ноль, процедура диалогового окна по умолчанию обрабатывает сообщение.
Если фильтр - процедура возвращает значение отличное от нуля, процедура диалогового окна по умолчанию игнорирует сообщение.

Замечания
Когда вы используете функцию PrintDlg, чтобы создать стандартное диалоговое окно Печать (Print), то можете для обработки сообщений или предупреждений, предназначенных для процедуры диалогового окна, предоставить фильтр - процедуру PrintHookProc. Чтобы разрешить действие этой фильтр - процедуры, используйте структуру PRINTDLG, которую вы передали в функцию создавшую диалоговое окно. Установите в элементе lpfnPrintHook адрес фильтр процедуры, а в элементе Flags установите флажок PD_ENABLEPRINTHOOK.
Процедура блока диалога по умолчанию обрабатывает сообщение WM_INITDIALOG перед передачей его в фильтр - процедуру. Хотя все другие сообщения фильтр - процедура принимает первая. Затем, возвращаемое значение фильтр - процедуры определяет, обрабатывает ли заданная по умолчанию процедура диалоговое окна сообщение или игнорирует его.
Если фильтр - процедура обрабатывает сообщение WM_CTLCOLORDLG, она должна возвратить допустимый дескриптор кисти для закрашивания фона диалогового окна. В большинстве случаев, если фильтр - процедура обрабатывает какое-либо сообщение WM_CTLCOLOR*, она должна возвратить допустимый дескриптор кисти для закрашивания фона определяемого элемента управления.
Не вызывайте функцию EndDialog из фильтр - процедуры. Вместо этого, она может вызывать функцию PostMessage, чтобы послать процедуре диалогового окна сообщение WM_COMMAND со значением IDABORT. Отправка сообщения IDABORT закрывает диалоговое окно и вынуждает функцию блока диалога возвратить значение ЛОЖЬ (FALSE). Если вам нужно узнать, почему фильтр - процедура закрыла диалоговое окно, вы должны предоставить свой собственный механизм связи между фильтр - процедурой и вашей прикладной программой.
Вы можете поделить на подклассы стандартные элементы управления стандартного диалогового окна. Однако и процедура стандартного диалогового окна также может делить на подклассы элементы управления. По этой причине, вы должны делить на подклассы элементы управления тогда, когда ваша фильтр - процедура обрабатывает сообщение WM_INITDIALOG. Это гарантирует то, что ваша процедура подкласса принимает определенные элементом управления сообщения перед процедурой подкласса, установленной процедурой диалогового окна.
PrintHookProc - метка - заместитель для определяемого программой или определенного библиотекой имени функции. Тип LPPRINTHOOKPROC - указатель на фильтр - процедуру PrintHookProc.

Смотри также
EndDialog, PostMessage, PrintDlg, PRINTDLG, WM_INITDIALOG, WM_CTLCOLORDLG

Размещение и совместимость PrintHookProc

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека Определяется пользователем
Заголовочный файл commdlg.h
Уникод Нет
Замечания по платформе LPPRINTHOOKPROC


Фильтр - процедура SetupHookProc

Фильтр - процедура SetupHookProc - определяемая программой или определяемая библиотекой процедура обратного вызова, которая используется стандартным диалоговым окном Установки для печати (Print Setup). Фильтр - процедура передает сообщения или предупреждения, предназначенные для процедуры диалогового окна по умолчанию.

Синтаксис

UINT APIENTRY SetupHookProc
(

HWND hdlg, // дескриптор окна блока диалога
UINT uiMsg, // идентификатор сообщения
WPARAM wParam, // параметр сообщения
LPARAM lParam // параметр сообщения
);

Параметры
hdlg
Дескриптор окна стандартного блока диалога Установки для печати (Print Setup), для которого предназначено сообщение.
uiMsg
Идентифицирует принимаемое сообщение.
wParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
lParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.

Возвращаемые значения
Если фильтр - процедура возвращает значение ноль, это значит по умолчанию процедура диалогового окна обрабатывает сообщение.
Если фильтр - процедура возвращает не нулевое значение, по умолчанию процедура диалогового окна игнорирует сообщение.

Замечания
Диалоговое окно Установки для печати (Print Setup) было заменено блоком диалога Параметры страницы(Page Setup), которое должно использоваться новыми прикладными программами, написанными для Windows NT или Windows 95. Однако, для совместимости с более ранними версиями Windows, функция PrintDlg продолжает поддерживать отображение на экране диалогового окна Установки для печати (Print Setup). Вы можете предоставить фильтр - процедуру SetupHookProc для диалогового окна Установки для печати (Print Setup), чтобы обрабатывать сообщения или предупреждения, предназначенные для процедуры диалогового окна.
Чтобы разрешить работу фильтр - процедуры, используйте структуру PRINTDLG, которую вы передали в функцию создавшую диалог. Установите адрес фильтр - процедуры в элементе lpfnSetupHook, а в элементе Flags установите флажок PD_ENABLESETUPHOOK
Заданная по умолчанию процедура диалогового окна обрабатывает сообщение WM_INITDIALOG перед передачей его в фильтр - процедуру. Хотя все другие сообщения сначала принимает фильтр - процедура. Затем, возвращаемое значение фильтр - процедуры определяет, обрабатывает ли заданная по умолчанию процедура диалогового окна сообщение или игнорирует его.
Если фильтр - процедура обрабатывает сообщение WM_CTLCOLORDLG, она должна возвратить правильный дескриптор кисти для закрашивания фона диалогового окна. В большинстве случаев, если фильтр - процедура обрабатывает любое сообщение WM_CTLCOLOR*, она должна возвратить правильный дескриптор кисти для закрашивания фона определяемого элемента управления.
Не вызывайте функцию EndDialog из фильтр - процедуры. Вместо этого, она может вызывать функцию PostMessage, чтобы послать сообщение WM_COMMAND со значением IDABORT в процедуру диалогового окна. Отправка сообщения IDABORT закрывает диалоговое окно и вынуждает функцию блока диалога возвратить значение ЛОЖЬ (FALSE). Если вам нужно узнать, почему фильтр - процедура закрыла диалоговое окно, вы должны предоставить ваш собственный механизм связи между фильтр - процедурой и вашей прикладной программой.
Вы можете поделить на подклассы стандартные элементы управления общего диалогового окна. Тем не менее, процедура стандартного диалогового окна может также делить на подклассы элементы управления. По этой причине, вы должны делить на подклассы элементы управления, когда ваша фильтр - процедура обрабатывает сообщение WM_INITDIALOG. Это гарантирует то, что ваша процедура подкласса принимает определенные элементом управления сообщения перед процедурой подкласса, установленной процедурой диалогового окна.
SetupHookProc - метка - заместитель для определяемого программой или определенного библиотекой имени функции. Тип LPSETUPHOOKPROC - указатель на фильтр - процедуру SetupHookProc.

Смотри также
EndDialog, PrintDlg, PRINTDLG, PostMessage, WM_INITDIALOG, WM_CTLCOLORDLG

Размещение и совместимость SetupHookProc

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека Определяемая пользователем
Заголовочный файл commdlg.h
Уникод Нет
Замечания по платформе LPSETUPHOOKPROC


Структуры стандартного диалогового окна

Стандартные диалоговые окна используют ниже перечисленные структуры. 

Структура CHOOSECOLOR

Структура CHOOSECOLOR содержит информацию, которую использует функция ChooseColor, чтобы инициализировать стандартное диалоговое окно Цвет (Color). После того, как пользователь закрывает диалоговое окно, система возвращает информацию о выборе пользователя в этой структуре.

Синтаксис

typedef struct 
{
DWORD lStructSize;
HWND hwndOwner;
HWND hInstance;
COLORREF rgbResult;
COLORREF* lpCustColors;
DWORD Flags;
LPARAM lCustData;
LPCCHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
} CHOOSECOLOR;

Элементы
lStructSize
Определяет длину структуры, в байтах.
hwndOwner
Идентифицирует окно, которое владеет диалоговым окном. Этот элемент может быть любой правильный дескриптор окна или это может быть значение ПУСТО (NULL), если блок диалога не имеет владельца.
hInstance
Если флажок CC_ENABLETEMPLATEHANDLE установлен в элементе Flags, элемент hInstance - дескриптор объекта памяти, содержащего шаблон диалогового окна. Если флажок CC_ENABLETEMPLATE установлен, hInstance идентифицирует модуль, который содержит шаблон диалогового окна, именованный при помощи элемента lpTemplateName. Если ни CC_ENABLETEMPLATEHANDLE, ни CC_ENABLETEMPLATE не установлен, этот элемент игнорируется.
rgbResult
Если флажок CC_RGBINIT установлен, элемент rgbResult определяет выбранный первоначально цвет, когда создавалось диалоговое окно. Если среди доступных цветов определяемого значения цвета нет, система выбирает самый близкий доступный чистый тон. Если rgbResult - нуль или CC_RGBINIT не установлен, первоначально выбранный цвет черный. Если пользователь щелкает мышью по кнопке OK, элемент rgbResult устанавливает цвет выбранный пользователем.
lpCustColors
Указатель на массив из 16 значений COLORREF, который содержит для пользовательских палитр цветов значения красного, зеленого, синего (RGB) в диалоговом окне. Если пользователь изменяет эти цвета, система модифицирует массив новыми значениями RGBChooseColor, вы должны распределить статическую память для массива.
Flags
Установка битов флажков, которые вы можете использовать, чтобы инициализировать стандартное диалоговое окно Цвет (Color). Когда блок диалога возвращает значение, он устанавливает эти флажки, чтобы показать ввод данных пользователем. Этот элемент может быть комбинацией следующих флажков:

  • CC_ENABLEHOOK - Разрешает действие фильтр - процедуры, которая определена в элементе lpfnHook этой структуры. Этот флажок используется только для того, чтобы инициализировать диалоговое окно.
  • CC_ENABLETEMPLATE - Указывает, что элементы hInstance и lpTemplateName определяют шаблон диалогового окна, чтобы использовать его вместо заданного по умолчанию шаблона. Этот флажок используется только для того, чтобы инициализировать диалоговое окно.
  • CC_ENABLETEMPLATEHANDLE - Указывает, что элемент hInstance идентифицирует блок данных, который содержит предварительно загружаемый шаблон диалогового окна. Система игнорирует элемент lpTemplateName, если этот флажок установлен. Этот флажок используется только для инициализации диалогового окна.
  • CC_FULLOPEN - Заставляет диалоговое окно показывать дополнительные элементы управления, которые позволяют пользователю создавать пользовательские цвета. Если этот флажок не установлен, пользователь должен щелкнуть мышью по кнопке Определить дополнительный цвет (Define Custom Color), чтобы показать элементы управления дополнительным цветом.
  • CC_PREVENTFULLOPEN - Запрещает работу кнопки Определить дополнительные цвета (Define Custom Colors).
  • CC_RGBINIT - Заставляет диалоговое окно использовать цвет, определяемый в элементе rgbResult как исходный выбранный цвет.
  • CC_SHOWHELP - Заставляет диалоговое окно отображать кнопку Справка (Help). Элемент hwndOwner должен определить окно, которое примет зарегистрированные сообщения HELPMSGSTRING, переданное диалоговым окном, когда пользователь щелкает мышью по кнопке Справка (Help).

lCustData
Устанавливает определяемые программой данные, которые система передает в фильтр - процедуру, идентифицированную элементом lpfnHook. Когда система передает сообщение WM_INITDIALOG фильтр - процедуре, параметр lParam сообщения является указателем на структуру CHOOSECOLOR, определяемую, когда диалоговое окно было создано. Фильтр - процедура может использовать этот указатель, чтобы получить значение lCustData.
lpfnHook
Указатель на фильтр - процедуру CCHookProc, которая может обрабатывать сообщения, предназначенные для диалогового окна. Этот элемент игнорируется, если в элементе Flags не установлен флажок CC_ENABLEHOOK.
lpTemplateName
Указатель на строку с нуль-терминатором в конце, которая именует ресурс шаблона диалогового окна в модуле, идентифицированном элементом hInstance. Этот шаблон заменяет стандартный шаблон диалогового окна. Для перечисления ресурсов диалогового окна, значение lpTemplateName может быть возвращено макрокомандой MAKEINTRESOURCE. Этот элемент игнорируется, если в элементе Flags не установлен флажок CC_ENABLETEMPLATE.

Смотри также
CCHookProc, ChooseColor, MAKEINTRESOURCE, WM_INITDIALOG

Размещение и совместимость CHOOSECOLOR

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Уникод WinNT
Замечания по платформе Не имеется

 
 

Структура CHOOSEFONT

Структура CHOOSEFONT содержит информацию, которую использует функция ChooseFont, чтобы инициализировать стандартное диалоговое окно Шрифт (Font). После того, как пользователь закрывает диалоговое окно, система возвращает информацию о выборе пользователя в этой структуре.

typedef struct 
{
DWORD lStructSize;
HWND hwndOwner;
HDC hDC;
LPLOGFONT lpLogFont;
INT iPointSize;
DWORD Flags;
DWORD rgbColors;
LPARAM lCustData;
LPCFHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
HINSTANCE hInstance;
LPTSTR lpszStyle;
WORD nFontType;
WORD ___MISSING_ALIGNMENT__;
INT nSizeMin;
INT nSizeMax;
} CHOOSEFONT;

Элементы
lStructSize
Определяет длину структуры в байтах.
hwndOwner
Идентифицирует окно, которое владеет блоком диалога. Этот элемент может быть любым правильным дескриптором окна или он может быть значением ПУСТО (NULL), если у диалогового окна нет владельца.
hDC
Идентифицирует контекст устройства (или информационный контекст) печати, чьи шрифты должны быть внесены в список диалогового окна. Этот элемент используется только тогда, если в элементе Flags установлен флажок CF_PRINTERFONTS или CF_BOTH; в противном случае, этот элемент игнорируется.
lpLogFont
Указатель на структуру LOGFONT. Если вы в элементе Flags установили флажок CF_INITTOLOGFONTSTRUCT и инициализировали элементы LOGFONT, функция ChooseFont инициализирует диалоговое окно со шрифтом, который является наиболее близким возможным соответствием. Если пользователь щелкает по кнопке ОК, ChooseFont устанавливает элементы структуры LOGFONT, основанные на выборе пользователя.
iPointSize
Устанавливает размер выбранного шрифта, в единицах 1/10 пункта. Функция ChooseFon устанавливает это значение после того, как пользователь закроет диалоговое окно
Flags
Установка битов флажков, которые вы можете использовать, чтобы инициализировать стандартное диалоговое окно Шрифт (Font). Когда диалоговое окно возвращает значение, оно устанавливает эти флажки, чтобы показать вводимые данные пользователем. Этот элемент может быть комбинацией следующих флажков:

  • CF_APPLY - Заставляет диалоговое окно показать на экране кнопку Применить (Apply). Вы должны предоставить фильтр - процедуру, чтобы обрабатывать сообщения WM_COMMAND от кнопки Применить (Apply). Фильтр - процедура может передать сообщение WM_CHOOSEFONT_GETLOGFONT в диалоговое окно, чтобы изъять адрес структуры LOGFONT, которая содержит текущий выбор для шрифта.
  • CF_ANSIONLY - Этот флажок устаревший. Чтобы ограничить выбор шрифта для всех записей, за исключением тех, которые используют набор символов OEM или Symbol, используют флажок CF_SCRIPTSONLY. Чтобы получить сведения о поведении Windows 3.1 в соответствии с CF_ANSIONLY, используйте CF_SELECTSCRIPT, и определите ANSI_CHARSET в элементе lfCharSet структуры LOGFONT, указанной в lpLogFont.
  • CF_BOTH - Заставляет диалоговое окно внести в список доступный принтер и экранные шрифты. Элемент hDC идентифицирует контекст устройства (или информационный контекст) связанный с принтером. Этот флажок - комбинация флажков CF_PRINTERFONTS и CF_SCREENFONTS.
  • CF_TTONLY - Определяет, что функция ChooseFont должна только перечислять и давать возможность выбора шрифтов TrueType.
  • CF_EFFECTS - Заставляет диалоговое окно показать на экране элементы управления, которые позволяют пользователю устанавливать опции зачеркивания, подчеркивания и цвета текста. Если этот флажок установлен, вы можете использовать элемент rgbColors, чтобы определить исходный цвет текста. Вы можете использовать элементы lfStrikeOut и lfUnderline структуры LOGFONT, указанной в lpLogFont, чтобы определить начальные установки переключателей зачеркивания и подчеркивания. ChooseFont может использовать эти элементы, чтобы возвратить выбор пользователя.
  • CF_ENABLEHOOK - Разрешает действие фильтр - процедуры, определяемой в элементе lpfnHook этой структуры.
  • CF_ENABLETEMPLATE - Показывает, что элементы hInstance и lpTemplateName определяют шаблон диалогового окна, чтобы использовать его вместо заданного по умолчанию шаблона.
  • CF_ENABLETEMPLATEHANDLE - Показывает, что элемент hInstance идентифицирует блок данных, который содержит предварительно загруженный шаблон диалогового окна. Система игнорирует элемент lpTemplateName, если этот флажок установлен.
  • CF_FIXEDPITCHONLY - Определяет, что функция ChooseFont должна выбирать только моноширинные шрифты.
  • CF_FORCEFONTEXIST - Определяет, что функция ChooseFont должна показать состояние ошибки, если пользователь стремится выбрать шрифт или стиль, который не существует.
  • CF_INITTOLOGFONTSTRUCT - Определяет, что функция ChooseFont должна использовать структуру LOGFONT, указанную элементом lpLogFont, чтобы инициализировать управляющие элементы диалогового окна.
  • CF_LIMITSIZE - Определяет, что функция ChooseFont должна выбрать только размеры шрифта внутри диапазона, определяемого элементами nSizeMin и nSizeMax.
  • CF_NOOEMFONTS - То же самое, что и флажок CF_NOVECTORFONTS.
  • CF_NOFACESEL - При использовании структуры LOGFONT, чтобы инициализировать управляющие элементы диалогового окна, используйте этот флажок, чтобы выборочно не допустить отображения на экране диалоговым окном первоначального выбора имени шрифта для комбинированного блока. Это полезно, когда нет хотя бы одного наименования шрифта, который применяется в выбранном тексте.
  • CF_NOSCRIPTSEL - Отключает комбинированный блок Набор символов (Script). Когда этот флажок установлен, элемент lfCharSet структуры LOGFONT устанавливается в DEFAULT_CHARSET, когда ChooseFont возвращает значение. Этот флажок используется только для того, чтобы инициализировать диалоговое окно.
  • CF_NOSTYLESEL - При использовании структуры LOGFONT, чтобы инициализировать управляющие элементы диалогового окна, используйте этот флажок, чтобы избирательно не дать диалоговому окну отображать на экране начальный выбор стиля шрифта для комбинированного блока диалога. Это полезно, когда нет хотя бы единственного стиля шрифта, который применяется в выбранном тексте.
  • CF_NOSIZESEL - При использовании структуры LOGFONT, чтобы инициализировать управляющие элементы диалогового окна, используйте этот флажок, чтобы избирательно не дать диалоговому окну отображать на экране начальный выбор размера шрифта для комбинированного блока диалога. Это полезно, когда нет хотя бы единственного размера шрифта, который применяется в выбранном тексте.
  • CF_NOSIMULATIONS - Определяет, что функция ChooseFont не должна позволять графическому интерфейсу устройства (GDI) моделирования шрифта.
  • CF_NOVECTORFONTS - Определяет, что функция ChooseFont не должна позволять выбор векторного шрифта.
  • CF_NOVERTFONTS - Заставляет диалоговое окно Шрифт (Font) вносит в список только горизонтально ориентированные шрифты.
  • CF_PRINTERFONTS - Заставляет диалоговое окно внести в список только шрифты, поддерживаемые принтером, связанным с контекстом устройства (или информационным контекстом) идентифицированным элементом hDC.
  • CF_SCALABLEONLY - Определяет, что функция ChooseFont должна позволить выбор только масштабируемых шрифтов. (Масштабируемые шрифты включают в себя векторные шрифты, масштабируемые шрифты принтера, шрифты TrueType, и шрифты, масштабируемые другими технологиями.)
  • CF_SCREENFONTS - Заставляет диалоговое окно вносить в список только экранные шрифты, поддерживаемые системой.
  • CF_SCRIPTSONLY - Определяет, что функция ChooseFont должна позволить выбор шрифтов для всех не - OEM и Symbol наборов символов, а также набора символов ANSI. Этот флажок заменяет значение CF_ANSIONLY.
  • CF_SELECTSCRIPT - Когда это значение установлено при вводе данных, отображаются только шрифты с набором символов, идентифицированным в элементе lfCharSet структуры LOGFONT. Пользователю не будет позволено изменить набор символов, определяемый в комбинированном блоке диалога Набор символов (Scripts).
  • CF_SHOWHELP - Заставляет диалоговое окно показывать на экране кнопку Справка (Help). Элемент hwndOwner должен определить окно, чтобы принимать зарегистрированные сообщения HELPMSGSTRING, которые диалоговое окно передает, когда пользователь щелкает мышью по кнопке Справка (Help).
  • CF_USESTYLE - Определяет, что элемент lpszStyle указывает на буфер, который содержит данные о стиле, которые функция ChooseFont должна использовать, чтобы инициализировать комбинированный блок диалога Стиль Шрифта (Font Style). Когда пользователь закрывает диалоговое окно, ChooseFont копирует данные о стиле, выбранном пользователем, из этого буфера.
  • CF_WYSIWYG - Определяет, что функция ChooseFont должна позволить выбор только шрифтов, доступных и для принтера и для дисплея. Если этот флажок установлен, флажки CF_BOTH и CF_SCALABLEONLY также должны быть установлены.

rgbColors
Если установлен флажок CF_EFFECTS, rgbColors определяет начальный цвет текста. Когда функция ChooseFont успешно возвращает значение, этот элемент содержит значение RGB цвета текста, который выбрал пользователь.
lCustData
Устанавливает определяемые программой данные, которые система передает в фильтр - процедуру, идентифицированную элементом lpfnHook. Когда система передает сообщение WM_INITDIALOG фильтр - процедуре, параметр сообщения lParam - указатель на структуру CHOOSEFONT, определенную, когда диалоговое окно было создано. Фильтр - процедура может использовать этот указатель, чтобы получить значение lCustData.
lpfnHook
Указатель на фильтр - процедуру CFHookProc, которая может обрабатывать сообщения, предназначенные для диалогового окна. Этот элемент игнорируется, если в элементе Flags не установлен флажок CF_ENABLEHOOK.
LpTemplateName
Указатель на строку с символом нуля в конце, который именует ресурс шаблона диалогового окна в модуле, идентифицированном элементом hInstance. Этот шаблон заменяет стандартный шаблон диалогового окна. Для пронумерованных ресурсов блока диалога, lpTemplateName может быть значением, возвращенным макрокомандой MAKEINTRESOURCE. Этот элемент игнорируется, если в элементе Flags не установлен флажок CF_ENABLETEMPLATE.
hInstance
Если в элементе Flags установлен флажок CF_ENABLETEMPLATEHANDLE, hInstance - дескриптор объекта памяти, содержащего шаблон диалогового окна. Если установлен флажок CF_ENABLETEMPLATE, hInstance идентифицирует модуль, который содержит шаблон диалогового окна, именованный элементом lpTemplateName. Если ни CF_ENABLETEMPLATEHANDLE ни CF_ENABLETEMPLATE не установлен, этот элемент игнорируется.
lpszStyle
Указатель на буфер, который содержит данные стиля. Если установлен флажок CF_USESTYLE, функция ChooseFont использует данные в этом буфере, чтобы инициализировать стиль шрифта комбинированного блока диалога. Когда пользователь закрывает диалоговое окно, ChooseFont в этот буфер копирует строку стиля шрифта в комбинированном блоке диалога.
nFontType
Определяет тип выбранного шрифта, когда ChooseFont возвращает значение. Этот элемент может быть комбинацией следующих значений:

  • BOLD_FONTTYPE - Толщина шрифта - полужирная. Эта информация дублируется в элементе lfWeight структуры LOGFONT и эквивалентна FW_BOLD.
  • ITALIC_FONTTYPE - Устанавливает атрибут шрифта курсив. Эта информация дублируется в элементе lfItalic структуры LOGFONT.
  • PRINTER_FONTTYPE - Этот шрифт является шрифтом принтера.
  • REGULAR_FONTTYPE - Толщина шрифта нормальная. Эта информация дублируется в элементе lfWeight структуры LOGFONT и эквивалентна FW_REGULAR.
  • SCREEN_FONTTYPE - Этот шрифт является шрифтом экрана.
  • SIMULATED_FONTTYPE - Этот шрифт моделируется графическим интерфейсом устройства (GDI).

nSizeMin
Определяет минимальный размер шрифта в пунктах, который пользователь может выбирать. Функция ChooseFont распознает этот элемент только в том случае, если установлен флажок CF_LIMITSIZE.
nSizeMax
Определяет максимальный размер шрифта в пунктах, который пользователь может выбирать. Функция ChooseFont распознает этот элемент только в том случае, если установлен флажок CF_LIMITSIZE.

Смотри также
ChooseFont, LOGFONT, MAKEINTRESOURCE

Размещение и совместимость CHOOSEFONT

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Уникод WinNT
Замечания по платформе Не имеется


Структура DEVNAMES

Структура DEVNAMES содержит строки, которые идентифицируют имена драйвера, устройства и порта вывода данных для принтера. Функция PrintDlg использует эти строки, чтобы инициализировать элементы в определенном системой диалоговом окне Печать (Print). Когда пользователь закрывает диалоговое окно, информация о выбранном принтере возвращается в эту структуру.

Синтаксис

typedef struct tagDEVNAMES 
{
WORD wDriverOffset;
WORD wDeviceOffset;
WORD wOutputOffset;
WORD wDefault;
// строки названий драйвера, устройства и порта следуют за wDefault
} DEVNAMES;

Элементы
wDriverOffset
(Ввод/Вывод) Устанавливает смещение в символах от начала этой структуры до строки с символом нуля в конце, которая содержит имя файла (без расширения) драйвера устройства. При вводе, эта строка используется для определения принтера, чтобы отобразить на экране вначале в диалоговом окне.
wDeviceOffset
(Ввод/Вывод) Устанавливает смещение в символах от начала этой структуры до строки с символом нуля в конце (максимум 32 байта, включая ноль), которая содержит название устройства. Эта строка должна быть идентична элементу dmDeviceName структуры DEVMODE.
wOutputOffset
(Ввод/Вывод) Устанавливает смещение в символах от начала этой структуры до строки с символом нуля в конце, которая содержит имя устройства физического носителя данных для вывода (порт вывода данных).
wDefault
Определяет, идентифицируют ли строки, содержащиеся в структуре DEVNAMES, заданный по умолчанию принтер. Эта строка используется, чтобы проверить, что заданный по умолчанию принтер не изменился после последней операции печати. Если какая-либо из строк не соответствует, на экране отображается предупреждающее сообщение, информирующее пользователя о том, что документ возможно надо будет переформатировать.
При выводе, элемент wDefault изменяется только в том случае, если диалоговое окно Параметры печати (Print Setup) отображалось на экране и пользователь выбрал кнопку OK. Флажок DN_DEFAULTPRN используется в том случае, если был выбран заданный по умолчанию принтер. Если определяемый принтер выбран, флажок не используется. Все другие флажки в этом элементе зарезервированы для внутреннего использования процедурой диалогового окна Печать (Print).

Смотри также
DEVMODE, PrintDlg

Размещение и совместимость DEVNAMES

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Уникод Нет
Замечания по платформе Не имеется

 

Структура FINDREPLACE

Структура FINDREPLACE содержит информацию, которую используют функции FindText и ReplaceText, чтобы инициализировать стандартные диалоговые окна Найти (Find) и Заменить (Replace). Зарегистрированное сообщение FINDMSGSTRING использует эту структуру, чтобы передать вводимые данные пользователем для поиска или замены в окно владельца стандартного блока диалога Найти (Find) или Заменить (Replace).

Синтаксис

typedef struct {    				
DWORD lStructSize;
HWND hwndOwner;
HINSTANCE hInstance;
DWORD Flags;
LPTSTR lpstrFindWhat;
LPTSTR lpstrReplaceWith;
WORD wFindWhatLen;
WORD wReplaceWithLen;
LPARAM lCustData;
LPFRHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
} FINDREPLACE;

Элементы
lStructSize
Определяет длину структуры в байтах.
hwndOwner
Идентифицирует окно, которое владеет диалоговым окном. Оконная процедура определяемого окна принимает сообщения FINDMSGSTRING от блока диалога. Этот элемент может быть любым допустимым дескриптором окна, но он не должен быть со значением ПУСТО (NULL).
hInstance
Если в элементе Flags установлен флажок FR_ENABLETEMPLATEHANDLE, hInstance - дескриптор объекта памяти, содержащего шаблон диалогового окна. Если установлен флажок FR_ENABLETEMPLATE, hInstance идентифицирует модуль, который содержит шаблон диалогового окна, именованный элементом lpTemplateName. Если установленных флажков нет, этот элемент игнорируется.
Flags
Установка битов флажков, которые вы можете использовать, чтобы инициализировать диалоговое окно. Блок диалога устанавливает эти флажки, когда он передает зарегистрированное сообщение FINDMSGSTRING, чтобы обозначить ввод данных пользователем. Этот элемент может быть комбинацией следующих флажков:

  • FR_DIALOGTERM - Если он установлен в сообщении FINDMSGSTRING, то указывает на то, что диалоговое окно закрывается. Когда вы получаете сообщение с этим установленным флажком, дескриптор окна блока диалога, возвращенный функцией FindText или ReplaceText больше не допустим.
  • FR_DOWN - Если он установлен, выбрана кнопка Вперед (Down) из радио-кнопок направления в диалоговом окне Найти (Find), обозначая тем самым, что вы должны осуществлять поиск от текущего местоположения до конца документа. Если он не установлен, выбрана кнопка Назад (Up), таким образом вы должны искать в направлении к началу документа. Вы можете устанавливать этот флажок, чтобы инициализировать диалоговое окно. Если он установлен в сообщении FINDMSGSTRING, то указывает на выбор пользователя.
  • FR_ENABLEHOOK - Разрешает работу фильтр - процедуры, которая определена в элементе lpfnHook. Этот флажок используется только для инициализации диалогового окна.
  • FR_ENABLETEMPLATE - Указывает, что элементы hInstance и lpTemplateName определяют шаблон диалогового окна, который используется вместо заданного по умолчанию шаблона. Этот флажок используется только для того, чтобы инициализировать диалоговое окно.
  • FR_ENABLETEMPLATEHANDLE - Указывает, что элемент hInstance идентифицирует блок данных, который содержит предварительно загруженный шаблон диалогового окна. Система игнорирует элемент lpTemplateName, если установлен этот флажок.
  • FR_FINDNEXT - Если он установлен в сообщении FINDMSGSTRING, то указывает, что пользователь щелкнул по кнопке Найти далее (Find Next) в диалоговом окне Найти(Find) или Заменить (Replace). Элемент lpstrFindWhat определяет строку для поиска.
  • FR_HIDEUPDOWN - Если он установлен при инициализации диалогового окна Найти (Find), то скрывает радио-кнопки направления поиска.
  • FR_HIDEMATCHCASE - Если он установлен при инициализации диалогового окна Найти (Find) или Заменить (Replace), то скрывает окошко для флажка Учитывать регистр (Match Case).
  • FR_HIDEWHOLEWORD - Если он установлен при инициализации диалогового окна или Найти (Find) или Заменить (Replace), то скрывает окошко для флажка Учитывать только слово целиком (Match Whole Word Only).
  • FR_MATCHCASE - Если он установлен, то окошко для флажка Учитывать регистр (Match Case) имеет маркер "галочку", указывая, что поиск должен быть чувствителен к регистру. Если он не установлен, в окошке для флажка нет "галочки", так что поиск должен осуществляться без учета регистра. Вы можете устанавливать этот флажок, чтобы инициализировать диалоговое окно. Если он установлен в сообщении FINDMSGSTRING, то обозначает выбор пользователя.
  • FR_NOMATCHCASE - Если он установлен при инициализации диалогового окна Найти (Find) или Заменить (Replace), то отключает окошко для флажка Учитывать регистр (Match Case).
  • FR_NOUPDOWN - Если он установлен при инициализации диалогового окна Найти (Find), то отключает радио-кнопки направления поиска.
  • FR_NOWHOLEWORD - Если он установлен при инициализации диалогового окна Найти (Find ) или Заменить (Replace), то отключает окошко для флажка Слово целиком (Whole Word).
  • FR_REPLACE - Если он установлен в сообщении FINDMSGSTRING, то указывает, что пользователь щелкнул по кнопке Заменить (Replace) в диалоговом окне Заменить (Replace). Элемент lpstrFindWhat определяет строку, которая будет заменена, а элемент lpstrReplaceWith определяет строку замены.
  • FR_REPLACEALL - Если он установлен в сообщении FINDMSGSTRING, то указывает, что пользователь щелкнул по кнопке Заменить все (Replace All) в диалоговом окне Заменить (Replace). Элемент lpstrFindWhat определяет строку, которая будет заменена, а элемент lpstrReplaceWith определяет строку замены.
  • FR_SHOWHELP - Заставляет диалоговое окно показать кнопку Справка (Help). Элемент hwndOwner должен определить окно, которое примет зарегистрированные сообщения HELPMSGSTRING, переданные диалоговым окном, когда пользователь щелкает мышью по кнопку Справка (Help).
  • FR_WHOLEWORD - Если он установлен, в окошке для флажка Учитывать только слово целиком (Match Whole Word Only) появляется "галочка", указывая, что вы должны искать только целые слова, которые соответствуют строке для поиска. Если он не установлен, в окошке для флажка нет отметки "галочкой", таким образом, вы должны искать такие же фрагменты слова, которые соответствуют строке для поиска. Вы можете установить этот флажок, чтобы инициализировать диалоговое окно. Если он установлен в сообщении FINDMSGSTRING, то это обозначает выбор пользователя.

lpstrFindWhat
Указатель на буфер, который использует сообщение FINDMSGSTRING для передачи строки для поиска с нуль-терминатором в конце, которую пользователь набрал в редактируемом поле " То, что искать:". Вы должны динамически распределить буфер или использовать глобальный или статический массив, так чтобы он не выходил из области действия до того, как диалоговое окно закроется. Буфер должен быть, по крайней, мере длиной 80 символов. Если буфер содержит строку, когда вы инициализируете диалоговое окно, строка отображается в редактируемом поле " То, что искать:".
Если сообщение FINDMSGSTRING определяет, флажок FR_FINDNEXT, элемент lpstrFindWhat содержит строку, которую надо искать. Флажки FR_DOWN, FR_WHOLEWORD и FR_MATCHCASE указывают направление и тип поиска. Если сообщение FINDMSGSTRING определяет флажки FR_REPLACE или FR_REPLACE, элемент lpstrFindWhat содержит строку, которая будет заменена.
lpstrReplaceWith
Указатель на буфер, который использует сообщение FINDMSGSTRING, чтобы передать строку замены с нуль-терминатором в конце, которую пользователь ввел с клавиатуры в редактируемое поле "Заменить на: (Replace With)". Вы должны динамически распределить буфер или использовать глобальный или статический массив, так чтобы он не выходил из области действия прежде, чем диалоговое окно закроется. Если буфер содержит строку, когда вы инициализируете диалоговое окно, строка отображается в редактируемом поле "Заменить на: (Replace With)".
Если сообщение FINDMSGSTRING определяет флажки FR_REPLACE или FR_REPLACEALL, lpstrReplaceWith содержит строку замены.
Функция FindText игнорирует этот элемент.
wFindWhatLen
Устанавливает длину, в байтах, буфера, указанного элементом lpstrFindWhat.
wReplaceWithLen
Устанавливает длину, в байтах, буфера, указанного элементом lpstrReplaceWith
lCustData
Устанавливает определяемые программой данные, которые система передает в фильтр - процедуру, идентифицированную при помощи элемента lpfnHook. Когда система посылает сообщение WM_INITDIALOG фильтр - процедуре, параметр сообщения lParam - указатель на структуру FINDREPLACE, определенную, когда диалоговое окно было создано. Фильтр - процедура может использовать этот указатель, чтобы получить значение lCustData.
lpfnHook
Указатель на фильтр - процедуру FRHookProc, которая может обрабатывать сообщения, предназначенные для диалогового окна. Этот элемент игнорируется, если в элементе Flags не установлен флажок FR_ENABLEHOOK.
Если фильтр - процедура в ответ на сообщение WM_INITDIALOG возвращает значение ЛОЖЬ (FALSE), она должна показать на экране диалоговое окно, а не то диалоговое окно не будет показано на экране. Чтобы сделать это, сначала выполняют любые другие действия рисования, а затем вызывают функции ShowWindow и UpdateWindow.
lpTemplateName
Указатель на строку с символом нуля в конце, которая именует ресурс шаблона диалогового окна в модуле, идентифицированном элементом hInstance. Этот шаблон заменяет стандартный шаблон диалогового окна. Для пронумерованных ресурсов диалогового окна, это может быть значение, возвращенное макрокомандой MAKEINTRESOURCE. Этот элемент игнорируется, если в элементе Flags не установлен флажок FR_ENABLETEMPLATE.

Смотри также
FindText, FRHookProc, MAKEINTRESOURCE, ReplaceText, ShowWindow, UpdateWindow, WM_INITDIALOG

Размещение и совместимость DEVNAMES

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Уникод Нет
Замечания по платформе Не имеется


Структура OPENFILENAME

Структура OPENFILENAME содержит информацию, которую используют функции GetOpenFileName и GetSaveFileName, чтобы инициализировать стандартное диалоговое окно Открыть (Open) или Сохранить как… (Save As). После того как пользователь закроет диалоговое окно, система возвращает информацию о выборе пользователя в эту структуру.

Синтаксис

typedef struct tagOFN 
{
DWORD lStructSize;
HWND hwndOwner;
HINSTANCE hInstance;
LPCTSTR lpstrFilter;
LPTSTR lpstrCustomFilter;
DWORD nMaxCustFilter;
DWORD nFilterIndex;
LPTSTR lpstrFile;
DWORD nMaxFile;
LPTSTR lpstrFileTitle;
DWORD nMaxFileTitle;
LPCTSTR lpstrInitialDir;
LPCTSTR lpstrTitle;
DWORD Flags;
WORD nFileOffset;
WORD nFileExtension;
LPCTSTR lpstrDefExt;
DWORD lCustData;
LPOFNHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
} OPENFILENAME;

Элементы
lStructSize
Определяет длину структуры в байтах.
hwndOwner
Идентифицирует окно, которое владеет диалоговым окном. Этот элемент может быть любым допустимым дескриптором окна или он может иметь значение ПУСТО (NULL), если у диалогового окна нет владельца.
hInstance
Если в элементе Flags установлен флажок OFN_ENABLETEMPLATEHANDLE, hInstance является дескриптором объекта памяти, содержащего шаблон диалогового окна. Если установлен флажок OFN_ENABLETEMPLATE, hInstance идентифицирует модуль, который содержит шаблон диалогового окна, имеющий имя, которое в элементе lpTemplateName. Если ни один флаг не установлен, этот элемент игнорируется.
Если установлен флажок OFN_EXPLORER, система использует заданный шаблон для создания диалогового окна, которое является дочерним блоком диалога по умолчанию в стиле Проводника. Если флажок OFN_EXPLORER не установлен, система использует шаблон для создания диалогового окна в старом стиле, который заменяет блок диалога по умолчанию.
lpstrFilter
Указатель на буфер, содержащий пары строк фильтров с нулевым символом в конце. Последняя строка в буфере должна быть завершена двумя символами ПУСТО (NULL).
Первая строка в каждой паре - информационная строка, которая описывает фильтр (например, "Текстовые файлы" ("Text Files)"), а вторая строка определяет модель фильтра (например, "*.TXT"). Чтобы определить модели сложного фильтра для отдельной информационной строки, используйте точку с запятой, чтобы отделять их (например, "*.TXT; *.DOC; *.BAK"). Строка модели может быть комбинацией допустимых символов имени файла и звездочки (*) в качестве группового символа. Не включайте пробелы в строку модели.
Операционная система не изменяет порядок фильтров. Она показывает их в комбинированном блоке Типы файлов (File Types), по порядку определяемому в элементе lpstrFilter.
Если lpstrFilter имеет значение ПУСТО (NULL), диалоговое окно не показывает каких-либо фильтров.
lpstrCustomFilter
Указатель на статический буфер, который содержит пару строк фильтра с нулевым символом в конце для сохранения модели фильтра, выбранного пользователем. Первая строка - информирующая вас строка, которая описывает индивидуальный фильтр, а вторая строка - модель фильтра, выбранного пользователем. Первый раз, когда ваша прикладная программа создает диалоговое окно, вы определяете первую строку, которая может быть любой непустой строкой. Когда пользователь выбирает файл, диалоговое окно копирует текущую модель фильтра во вторую строку. Сохраняемая модель фильтра может быть одной из моделей, определяемых в буфере lpstrFilter, или это может быть модель фильтра, введенная с клавиатуры пользователем. Система использует строки, чтобы инициализировать определяемый пользователем фильтр файла, в следующий раз, когда создается диалоговое окно. Если элемент nFilterIndex нулевой, диалоговое окно использует пользовательский фильтр.
Если этот элемент имеет значение ПУСТО (NULL), диалоговое окно не сохраняет определяемые пользователем модели фильтра.
Если этот элемент - не ПУСТО (NULL), значение элемента nMaxCustFilter должно определить размер, в байтах (версия ANSI) или символах (версия Уникода), буфера lpstrCustomFilter.
nMaxCustFilter
Определяет размер, в байтах или символах, буфера, идентифицированного элементом lpstrCustomFilter. Этот буфер должен быть, по крайней мере, длиной 40 символов. Если lpstrCustomFilter имет значение ПУСТО (NULL) или указывает на строку со значением ПУСТО (NULL), этот элемент игнорируется.
nFilterIndex
Определяет индекс текущего выбранного фильтра в элементе управления Типы файлов (File Types). Буфер, указанный элементом lpstrFilter содержит пары строк, которые задают фильтры. Первая пара строк имеет индексное значение 1, вторая пара 2, и так далее. Индекс нуля обозначает, что пользовательский фильтр определен при помощи lpstrCustomFilter. Вы можете определить индекс при вводе данных, чтобы обозначить начальное описание фильтра и модель фильтра для диалогового окна. Когда пользователь выбирает файл, элемент nFilterIndex возвращает значение индекса текущего отображаемого фильтра.
Если элемент nFilterIndex нулевой и lpstrCustomFilter имеет значение ПУСТО (NULL), система использует первый фильтр в буфере lpstrFilter. Если все три элемента нулевые или имеют значение ПУСТО (NULL), система не использует какой-либо фильтр и не показывает какие-либо файлы в окне со списком файлов диалогового окна.
lpstrFile
Указатель на буфер, который содержит имя файла, используемое, чтобы инициализировать поле редактирования Имя файла (File Name). Первый символ этого буфера должен быть ПУСТО (NULL), если в ициализации нет необходимости. Когда функция GetOpenFileName или GetSaveFileName успешно возвращает значение, этот буфер содержит определитель диска, путь, имя и расширение выбранного файла.
Если установлен флажок OFN_ALLOWMULTISELECT и пользователь выбирает многочисленные файлы, буфер содержит текущий каталог, сопровождаемый выбранными именами файлов. В диалоговых окнах в стиле Проводника, каталог и строки имен файлов отделяются значением ПУСТО (NULL), с дополнительным символом ПУСТО (NULL) после последнего имени файла. В диалоговых окнах старого стиля, строки отделяются пробелами и функция использует короткие имена для файлов с пробелами. Вы можете использовать функцию FindFirstFile, чтобы преобразовывать длинные и короткие имена файлов.
Если буфер слишком маленький, функция возвращает значение ЛОЖЬ (FALSE), а функция CommDlgExtendedError возвращает значение FNERR_BUFFERTOOSMALL. В данном случае, первые два байта буфера lpstrFile содержат требуемый размер, в байтах или символах.
nMaxFile
Определяет размер буфера, в байтах (версия ANSI) или символах (версия Уникода), указанного элементом lpstrFile. Функции GetOpenFileName и GetSaveFileName возвращают значение ЛОЖЬ (FALSE), если буфер слишком маленький, чтобы содержать информацию о файле. Буфер должен быть по крайней мере длиной 256 символов.
lpstrFileTitle
Указатель на буфер, который принимает имя файла и расширение (без информации о пути) выбранного файла. Этот элемент может быть значением ПУСТО (NULL).
nMaxFileTitle
Определяет размер буфера, в байтах (версия ANSI) или символы (версия Уникода), указанного элементом lpstrFileTitle. Этот элемент игнорируется, если lpstrFileTitle имеет значение ПУСТО (NULL).
lpstrInitialDir
Указатель на строку, которая определяет начальный каталог файлов. Если этот элемент имеет значение ПУСТО (NULL), система использует текущий каталог как исходный каталог.
lpstrTitle
Указатель на строку, которая будет помещена в области заголовка диалогового окна. Если этот элемент имеет значение ПУСТО (NULL), система использует заданный по умолчанию заголовок (то есть "Сохранить как ... (Save As)" или "Открыть (Open)".
Flags
Набор битовых флажков, который вы может использовать, чтобы инициализировать диалоговое окно. Когда блок диалога возвращает значение, он устанавливает эти флажки, чтобы обозначить ввод данных от пользователя. Этот элемент может быть комбинацией следующих флажков:

  • OFN_ALLOWMULTISELECT - Определяет, что окно со списком Имя файла (File Name) позволяет многочисленный выбор. Если вы к тому же устанавите флажок OFN_EXPLORER, диалоговое окно использует пользовательский интерфейс в стиле Проводника; иначе, оно использует пользовательский интерфейс старого стиля. Если пользователь выбирает больше чем один файл, буфер lpstrFile возвращает путь текущему каталогу, сопровождаемый именами выбранных файлов. Элемент nFileOffset является смещением от первого имени файла, а элемент nFileExtension не используется. В диалоговых окнах в стиле Проводника, каталог и строки имени файла отделяются значением ПУСТО (NULL), с дополнительным символом ПУСТО (NULL) после последнего имени файла. Этот формат включает диалоговое окно в стиле Проводника, чтобы возвращать длинные имена файлов, которые включают в себя пробелы. В диалоговых окнах старого стиля каталог и строки имен файлов отделяются пробелами, а функция использует короткие имена для имен файлов с пробелами. Вы можете использовать функцию FindFirstFile, чтобы делать преобразования между длинными и короткими именами файла. Если вы определяете пользовательский шаблон для блока диалога старого стиля, определение окна со списком Имя файла (File Name) должно содержать значение LBS_EXTENDEDSEL.
  • OFN_CREATEPROMPT - Если пользователь определяет файл, который не существует, этот флажок заставляет диалоговое окно запросить пользователя о разрешении создать файл. Если пользователь выбирает создание файла, блок диалога закрывается, а функция возвращает определяемое название; в противном случае, диалоговое окно остается открытым.
  • OFN_ENABLEHOOK - Разрешает работу фильтр - процедуры, определяемой в элементе lpfnHook.
  • OFN_ENABLETEMPLATE - Обозначает то, что элемент lpTemplateName указывает на название ресурса шаблона блока диалога в модуле, идентифицированном элементом hInstance. Если установлен флажок OFN_EXPLORER, система использует определяемый шаблон, чтобы создать диалоговое окно, которое является дочерним для заданного по умолчанию блока диалога в стиле Проводника. Если флажок OFN_EXPLORER не установлен, система использует шаблон, чтобы создать диалоговое окно старого стиля, которое заменяет заданный по умолчанию блок диалога.
  • OFN_ENABLETEMPLATEHANDLE - Указывает на то, что элемент hInstance идентифицирует блок данных, который содержит предварительно загруженный шаблон диалогового окна. Система игнорирует элемент lpTemplateName, если этот флажок установлен. Если установлен флажок OFN_EXPLORER, система использует определяемый шаблон, чтобы создать блок диалога, который является дочерним для заданного по умолчанию диалогового окна в стиле Проводника. Если флажок OFN_EXPLORER не установлен, система использует шаблон, чтобы создать блок диалога старого стиля, которое заменяет заданное по умолчанию диалоговое окно.
  • OFN_EXPLORER - Обозначает, что любые настройки, сделанные в диалоговом окне Открыть (Open) или Сохранить как (Save As) используют новые методы настройки в стиле Проводника. Для получения дополнительной информации, см. статьи обзора Библиотеки стандартного диалогового окна " Фильтр (hook) - процедуры в стиле Проводника " и "Пользовательские шаблоны в стиле Проводника". По умолчанию, диалоговые окна Открыть (Open) и Сохранить как (Save As) используют пользовательский интерфейс в стиле Проводника независимо от того, установлен ли этот флажок. Этот флажок необходим, только в том случае, если вы предоставляете фильтр (hook) - процедуру или пользовательский шаблон или устанавливаете флажок OFN_ALLOWMULTISELECT. Если вы хотите иметь пользовательский интерфейс старого стиля, не включайте флажок OFN_EXPLORER и обеспечте замену шаблоном или фильтр (hook) - процедурой старого стиля. Если вы хотите иметь старый стиль, но не нуждаетесь в пользовательском шаблоне или фильтр (hook) - процедуре, просто предоставьте фильтр (hook) - процедуру, которая всегда возвращает значение ЛОЖЬ (FALSE).
  • OFN_EXTENSIONDIFFERENT - Определяет, что пользователь ввел с клавиатуры расширение имени файла, которое отличается от расширения, заданного при помощи lpstrDefExt. Функция не использует этот флажок, если lpstrDefExt имеет значение ПУСТО (NULL).
  • OFN_FILEMUSTEXIST - Определяет, что пользователь может вводить с клавиатуры только имена файлов существующих в поле ввода Имя файл (File Name). Если этот флажок определен, а пользователь вводит недопустимое название, процедура диалогового окна показывает на экране предупреждение в окне сообщений. Если этот флажок определен, флажок OFN_PATHMUSTEXIST также используется.
  • OFN_HIDEREADONLY - Скрывает отмечаемое "галочкой" окошко Только для чтения (Read Only).
  • OFN_LONGNAMES - В диалоговых окнах старого стиля этот флажок заставляет блок диалога использовать длинные имена файлов. Если этот фложок не определен или, если флажок OFN_ALLOWMULTISELECT также установлен, диалоговое окно старого стиля для названий файлов с пробелами использует короткие имена файлов (формат 8.3). Диалоговое окно в стиле Проводника игнорирует этот флажок и всегда показывает длинные имена файлов.
  • OFN_NOCHANGEDIR - Восстанавливает текущий каталог в первоначальном значении, если пользователь изменил каталог при поиске файлов.
  • OFN_NODEREFERENCELINKS - Предписывает диалоговому окну возвратить путь и имя файла выбранного ярлыка (.LNK файл). Если это значение не дано, блок диалога возвращает путь и имя файла, вызванного ярлыком.
  • OFN_NOLONGNAMES - В диалоговых окнах старого стиля этот флаг заставляет блок диалога использовать короткие имена файлов (формат 8.3). Диалоговые окна в стиле Проводника игнорируют этот флажок и всегда показывают длинные имена файлов.
  • OFN_NONETWORKBUTTON - Скрывает и отключает кнопку Сеть (Network).
  • OFN_NOREADONLYRETURN - Определяет, что возвращенное значение файла в окошке Только для чтения (Read Only) не имеет отметки "галочкой" и не в защищено от записи в каталоге.
  • OFN_NOTESTFILECREATE - Определяет, что перед закрытием диалогового окна файл не создается. Этот флажок должен быть определен, если прикладная программа сохраняет файл на неизменяющейся при выполнении соместно используемой сетевой станции. Когда прикладная программа определяет этот флажок, библиотека не проверяет защиту записи, переполнение диска, открытие доступа к диску или сетевую защиту. Прикладные программы используя этот флажок должны с большой осторжностью исполнять системный файл, потому что файл не может быть вновь открыт, как только он закроется.
  • OFN_NOVALIDATE - Определяет, что стандартные диалоговые окна позволяют запрещенные символы в возвращенном имени файла. Обычно, вызывающая прикладная программа использует фильтр (hook) - процедуру, которая проверяет имя файла при помощи использования сообщения FILEOKSTRING. Если текстовое поле в окне редактирования пустое или ничего не содержит, кроме пробелов, списки файлов и каталоги модифицируются. Если текстовое поле в окне редактирования текста содержит что - нибудь еще, элементы nFileOffset и nFileExtension устанавливаются в значения, созданные при анализе текста. Ни заданное по умолчанию расширение, ни имеемый текст, котрый скопирован в буфер, указанный элементом lpstrFileTitle, к тексту не добавляются. Если это значение определенное при помощи элемента nFileOffset - меньше чем нуль, имя файла ошибочное. Иначе, имя файла правильное и элементы nFileExtension и nFileOffset могут быть использованы, как будто флажок OFN_NOVALIDATE не был установлен.
  • OFN_OVERWRITEPROMPT - Заставляет диалоговое окно Сохранить как (Save As) создать окно сообщений, если выбранный файл уже существует. Пользователь должен подтвердить, переписывать ли заново файл.
  • OFN_PATHMUSTEXIST - Определяет, что пользователь может вводить с клавиатуры только правильные пути и имена файла. Если этот флажок использован, а пользователь вводит с клавиатуры ошибочный путь и имя файла в поле ввода Имя файла (File Name), функция диалогового окна показывает на экране в окне сообщений предупреждение.
  • OFN_READONLY - Заставляет окошко отметки Только для чтения (Read Only) изначально быть отмеченным "галочкой" при создании диалогового окна. Этот флажок указывает состояние окошка отметки Только для чтения (Read Only), когда блок диалога закрыт.
  • OFN_SHAREAWARE - Определяет, что, если вызов функции OpenFile не выполняет задачу из-за сетевой ошибки совместного доступа, ошибка игнорируется, а диалоговое окно возвращает выбранное имя файла. Если этот флажок не установлен, блок диалога сообщает вашей фильтр (hook) - процедуре, когда происходит сетевая ошибка совместного доступа имя файла, определенное пользователем. Если вы устанавливаете флажок OFN_EXPLORER, диалоговое окно передает сообщение CDN_SHAREVIOLATION фильтр (hook) - процедуре. Если вы не устанавливаете OFN_EXPLORER, блок диалога передает зарегистрированное сообщение SHAREVISTRING фильтр (hook) - процедуре.
  • OFN_SHOWHELP - Заставляет диалоговое окно показать на экране кнопку Справка (Help). Элемент hwndOwner должен определить окно, принимающее зарегистрированные сообщения HELPMSGSTRING, которые блок диалога передает, когда пользователь щелкает мышью по кнопке Справка (Help). Диалоговое окно в стиле Проводника передает вашей фильтр (hook) - процедуре уведомительное сообщение CDN_HELP, когда пользователь щелкает мышью по кнопке Справка (Help).

nFileOffset
Определяет отсчитываемое от нуля смещение от начала пути до имени файла в строке, указанной элементом lpstrFile. Например, если lpstrFile указывает на следующуюя строку, "c:\dir1\dir2\file.ext", этот элемент содержит значение 13, чтобы обозначить смещение строки "file.ext".
nFileExtension
Определяет отсчитываемое от нуля смещение от начала пути до расширения имени файла в строке, указанной элементом lpstrFile. Например, если lpstrFile указывает на следующую строку, "c:\dir1\dir2\file.ext", этот элемент содержит значение 18. Если пользователь не вводил с клавиатуры расширение и lpstrDefExt имеет значение ПУСТО (NULL), этот элемент определяет смещение, которое завершается символом нуля. Если пользователь ввел с клавиатуры "." в качестве последнего символа в имени файла, этот элемент определяется как нуль.
lpstrDefExt
Указывает на буфер, который содержит заданное по умолчанию расширение. Функции GetOpenFileName и GetSaveFileName это расширение добавляют в конец к имени файла, если пользователь не выполнил ввода с клавиатуры расширения. Эта строка может быть любой длины, но добавляются только первые три символа. Строка не должна содержать точку (.). Если этот элемент имеет значение ПУСТО (NULL), а пользователь не выполняет с клавиатуры ввода расширения, в конец никакого расширения не добавляется.
lCustData
Определяет заданные программой данные, которые система посылает фильтр (hook) - процедуре, идентифицированной элементом lpfnHook. Когда система передает сообщение WM_INITDIALOG фильтр (hook) - процедуре, параметр сообщения lParam - указатель на структуру OPENFILENAME, определенную, когда было создано диалоговое окно. Фильтр (hook) - процедура может использовать этот указатель, чтобы получить значение элемента lCustData.
lpfnHook
Указатель на фильтр (hook) - процедуру. Этот элемент игноририруется, если элемент Flags не включает в себя флажок OFN_ENABLEHOOK.
Если флажок OFN_EXPLORER не установлен в элементе Flags, lpfnHookhook) - процедуру OFNHookProcOldStyle, которая принимает сообщения, предназначенные для диалогового окна. Фильтр (hook) - процедура возвращает значение ЛОЖЬ (FALSE), чтобы переслать сообщение заданной по умолчанию процедуре диалогового окна, или значение ИСТИНА (TRUE), чтобы cбросить сообщение.
Если флажок OFN_EXPLORER установлен, lpfnHook - указатель на фильтр (hook) - процедуру OFNHookProc. Фильтр (hook) - процедура получает уведомительные сообщения, переданные из диалогового окна. Фильтр (hook) - процедура к тому же получает сообщения для любых дополнительных элементов управления, которые вы определили, устанавливая шаблон дочернего блока диалога. Фильтр (hook) - процедура не получает сообщения, предназначенные для заданных по умолчанию стандартных элементов управления диалогового окна.
lpTemplateName
Указатель на строку с символом нуля в конце, которя именует ресурс шаблона блока диалога в модуле, идентифицированном элементом hInstance. Для пронумерованных ресурсов диалогового окна, это может быть значение, возвращенное макрокомандой MAKEINTRESOURCE. Этот элемент игнорируется, если в элементе Flags не установлен флажок OFN_ENABLETEMPLATE.
Если флажок OFN_EXPLORER установлен, система использует заданный шаблон, чтобы создать диалоговое окно, которое является дочерним для заданного по умолчанию диалогового окна в стиле Проводника. Если флажок OFN_EXPLORER не установлен, система использует шаблон, чтобы создать блок диалога старого стиля, которое заменяет заданное по умолчанию диалоговое окно.

Смотри также
GetOpenFileName, GetSaveFileName

Размещение и совместимость OPENFILENAME

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется


Структура PAGESETUPDLG

Структура PAGESETUPDLG содержит информацию для функции PageSetupDlg, которая используется, чтобы инициализировать стандартное диалоговое окно Параметры страницы (Page Setup). После того, как пользователь закрывает блок диалога, система возвращает в эту структуру информацию об определяемых пользователем параметрах страницы.

Синтаксис

typedef struct tagPSD 
{
DWORD lStructSize;
HWND hwndOwner;
HGLOBAL hDevMode;
HGLOBAL hDevNames;
DWORD Flags;
POINT ptPaperSize;
RECT rtMinMargin;
RECT rtMargin;
HINSTANCE hInstance;
LPARAM lCustData;
LPPAGESETUPHOOK lpfnPageSetupHook;
LPPAGEPAINTHOOK lpfnPagePaintHook;
LPCTSTR lpPageSetupTemplateName;
HGLOBAL hPageSetupTemplate;
} PAGESETUPDLG, * LPPAGESETUPDLG;

Элементы
lStructSize
Определяет размер этой структуры, в байтах.
hwndOwner
Идентифицирует окно, которое владеет блоком диалога. Этот элемент может быть любым допустимым дескриптором окна, или он может иметь значение ПУСТО (NULL), если у диалогового окна нет владельца.
hDevMode
Дескриптор объекта глобальной памяти, который содержит структуру DEVMODE. При вводе данных, если дескриптор дан, чтобы инициализировать элементы управления в диалоговом окне используются значения в соответствующей структуре DEVMODE. При выводе данных, блок диалога устанавливает в hDevMode глобальный дескриптор памяти для структуры DEVMODE, которая содержит значения, определяющие выбор пользователя. Если выбор пользователя не доступен, диалоговое окно устанавливает hDevMode в значение ПУСТО (NULL).
hDevNames
Дескриптор объекта глобальной памяти, который содержит структуру DEVNAMES. Эта структура содержит три строки, которые определяют имя драйвера, название принтера и название порта вывода данных. При вводе данных, если дескриптор дан, строки в соответствующей структуре DEVNAMES используются, чтобы инициализировать элементы управления в диалоговом окне. При выводе данных, блок диалога устанавливает в hDevNames глобальный дескриптор памяти для структуры DEVNAMES, которая содержит строки, определяющие выбор пользователя. Если выбор пользователя не доступен, диалоговое окно устанавливает hDevNames в значение ПУСТО (NULL).
Flags
Набор битовых флажков, который вы можете использовать, чтобы инициализировать стандартное диалоговое окно Параметры страницы (Page Setup). Когда блок диалога возвращает значение, он устанавливает эти флажки, чтобы обозначить ввод данных пользователем. Этот элемент может быть комбинацией следующих флажков:

  • PSD_DEFAULTMINMARGINS - Устанавливаются минимальные значения, которые пользователь может определять для полей страницы, чтобы они были минимальными полями страницы, допустимыми для принтера. Эти значения определяются по умолчанию. Этот флажок игноририруется, если определены также флажки PSD_MARGINS и PSD_MINMARGINS.
  • PSD_DISABLEMARGINS - Отключает элементы управления полями страницы, не допуская пользователя к настройкам полей страницы.
  • PSD_DISABLEORIENTATION - Отключает элементы управления ориентации, не допуская пользователя к настройкам ориентации страницы.
  • PSD_DISABLEPAGEPAINTING - Не допускает диалоговое окно к рисованию содержания макета страницы. Если вы включаете фильтр (hook) - процедуру PagePaintHook, то все еще можете рисовать содержание макета страницы.
  • PSD_DISABLEPAPER - Отключает элементы управления бумагой, не допуская пользователя к настройкам параметров страницы таких как размер бумаги и её источник.
  • PSD_DISABLEPRINTER - Отключает кнопку Печать (Printer), не допуская пользователя к вызову диалогового окна, которое содержит дополнительную информацию о настройках принтера.
  • PSD_ENABLEPAGEPAINTHOOK - Включает фильтр (hook) - процедуру, определяемую в элементе lpfnPagePaintHook.
  • PSD_ENABLEPAGESETUPHOOK - Включает фильтр (hook) - процедуру, определяемую в элементе lpfnPageSetupHook.
  • PSD_ENABLEPAGESETUPTEMPLATE - Указывает, что элементы hInstance и lpPageSetupTemplateName определяют шаблон диалогового окна, который используетсяся вместо шаблона заданного по умолчанию.
  • PSD_ENABLEPAGESETUPTEMPLATEHANDLE - Указывает, что элемент hPageSetupTemplate идентифицирует блок данных, который содержит предварительно загруженный шаблон диалогового окна. Система игнорирует элемент lpPageSetupTemplateName, если этот флажок установлен.
  • PSD_INHUNDREDTHSOFMILLIMETERS - Указывает, что 1/100 миллиметра является единицей измерения для полей страницы и размера бумаги. Значения в элементах rtMargin, rtMinMargin и ptPaperSize находятся в сотых долях миллиметра. Вы можете установить этот флажок при вводе данных, чтобы заменить заданную по умолчанию единицу измерения для региона пользователя. Когда функция возвращает значение, диалоговое окно устанавливает этот флажок, чтобы указать используемые единицы измерения.
  • PSD_INTHOUSANDTHSOFINCHES - Указывает, что тысячные части дюймов - единица измерения для полей страницы и размера бумаги. Значения в элементах rtMargin, rtMinMargin и ptPaperSize находятся в тысячных долях дюйма. Вы можете установить этот флажок при вводе данных, чтобы заменить заданную по умолчанию единицу измерения для региона пользователя. Когда функция возвращает значение, диалоговое окно устанавливает этот флажок, чтобы указать используемые единицы измерения.
  • PSD_INWININIINTLMEASURE - Не выполняется.
  • PSD_MARGINS - Заставляет систему использовать значения, определяемые в элементе rtMargin как начальные размеры для левого, верхнего, правого и нижнего поля страницы. Если флажок PSD_MARGINS не установлен, система устанавливает начальные размеры в один дюйм для всех полей страницы.
  • PSD_MINMARGINS - Вынуждает систему использовать значения, определяемые в элементе rtMinMargin как минимально допустимые размеры для левого, верхнего, правого, и нижнего поля страницы. Система не разрешает пользователю ввод ширины, которая является меньше чем определяемый минимум. Если флажок PSD_MINMARGINS не установлен, система устанавливает минимальные допустимые размеры в которые разрешены для принтера.
  • PSD_NOWARNING - Не разрешает системе отображать на экране предупреждающее сообщение, когда нет никакого заданного по умолчанию принтера.
  • PSD_RETURNDEFAULT - Функция PageSetupDlg не показывает на экране диалоговое окно. Вместо этого, она устанавливает в элементах hDevNames и hDevMode дескрипторы структур DEVMODE и DEVNAMES, которые инициализированы системой как принтер по умолчанию. PageSetupDlg возвращает значение ошибки, если, или hDevNames, или hDevMode не имеют значение ПУСТО (NULL).
  • PSD_SHOWHELP - Заставляет диалоговое окно показать на экране кнопку Справка (Help). Элемент hwndOwner должен определить окно, принимающее зарегистрированные сообщения HELPMSGSTRING , которые блок диалога передает, когда пользователь щелкает мышью по кнопке Справка (Help).

ptPaperSize
Определяет размеры бумаги, выбранные пользователем. Флажок PSD_INTHOUSANDTHSOFINCHES или PSD_INHUNDREDTHSOFMILLIMETERS обозначает единицы измерения.
rtMinMargin
Определяет минимально допустимые размеры для левого, верхнего, правого и нижнего поля страницы. Система игнорирует этот элемент, если флажок PSD_MINMARGINS не установлен. Эти значения должны быть меньше или равны значениям, определяемым в элементе rtMargin. Флажок PSD_INTHOUSANDTHSOFINCHES или PSD_INHUNDREDTHSOFMILLIMETERS обозначает единицы измерения.
rtMargin
Определяет размеры левого, верхнего, правого, и нижнего поля страницы. Если вы устанавливаете флажок PSD_MARGINS, rtMargin определяет начальные значения полей страницы. Когда PageSetupDlg возвращает значение, rtMargin содержит размеры полей страницы, выбранные пользователем. Флажок PSD_INHUNDREDTHSOFMILLIMETERS или PSD_INTHOUSANDTHSOFINCHES обозначает единицы измерения.
hInstance
Если в элементе Flags установлен флажок PSD_ENABLEPAGESETUPTEMPLATE, hInstance - дескриптор прикладной программы или экземпляра модуля, который содержит шаблон диалогового окна, именованный элементом lpPageSetupTemplateName.
lCustData
Устанавливает определяемые программой данные о том, что система передает фильтр (hook) - процедуру, идентифицированную lpfnPageSetupHook элементом. Когда система передает сообщение WM_INITDIALOG фильтр (hook) - процедуре, параметр сообщения lParam - указатель на структуру PAGESETUPDLG, которая была определена, когда диалоговое окно было создано. Фильтр (hook) - процедура может использовать этот указатель, чтобы получить значение элемента lCustData.
lpfnPageSetupHook
Указатель на фильтр (hook) - процедуру PageSetupHook, которая может обрабатывать сообщения, предназначенные для диалогового окна. Если в элементе Flags, флажок PSD_ENABLEPAGESETUPHOOK не установлен, этот элемент игнорируется.
lpfnPagePaintHook
Указатель на фильтр (hook) - процедуру PagePaintHook, которая принимает сообщения WM_PSD_* от диалогового окна всякий раз, когда перерисовывается макет страницы. Обрабатывая сообщения, фильтр (hook) - процедура может настраивать внешний вид макета страницы. Этот элемент игнорируется, если в элементе Flags флажок PSD_ENABLEPAGEPAINTHOOK не установлен.
lpPageSetupTemplateName
Указатель на строку с символом нуля в конце, которая именует ресурс шаблона диалогового окна в модуле, идентифицированном элементом hInstance. Этот шаблон замещает стандартный шаблон блока диалога. Для пронумерованных ресурсов диалогового окна, lpPageSetupTemplateName может быть значением, возвращенным макрокомандой MAKEINTRESOURCE. Этот элемент игнорируется, если в элементе Flags флажок PSD_ENABLEPAGESETUPTEMPLATE не установлен.
hPageSetupTemplate
Если флажок PSD_ENABLEPAGESETUPTEMPLATEHANDLE установлен в элементе Flags, hPageSetupTemplate - дескриптор объекта памяти, содержащего шаблон диалогового окна.

Замечания
Если флажки PSD_INHUNDREDTHSOFMILLIMETERS и PSD_INTHOUSANDTHSOFINCHES не установлены, система делает запрос со значением LOCALE_IMEASURE региона гипотетического пользователя, чтобы обусловить единицу измерения (или одна сотая миллиметра или тысячные доли дюймов) для размеров полей страницы и размера бумаги.
Если и hDevNames и hDevMode имеют правильные дескрипторы, а название принтера, в элементе wDeviceOffset структуры DEVNAMES указано не такое, какое имя указано в элементе dmDeviceName структуры DEVMODE, система по умолчанию использует название указанное в элементе wDeviceOffset.>br>

Смотри также
DEVMODE, DEVNAMES, MAKEINTRESOURCE, PagePaintHook, PageSetupDlg, PageSetupHook, WM_INITDIALOG

Размещение и совместимость PAGESETUPDLG

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется


Структура PRINTDLG

Структура PRINTDLG содержит информацию о том, что функция PrintDlg используется, чтобы инициализировать стандартное диалоговое окно Печать (Print). После того, как пользователь закрывает блок диалога, система возвращает информацию об определяемом пользователем выборе печати в этой структуре.

Синтаксис

typedef struct tagPD 
{
DWORD lStructSize;
HWND hwndOwner;
HANDLE hDevMode;
HANDLE hDevNames;
HDC hDC;
DWORD Flags;
WORD nFromPage;
WORD nToPage;
WORD nMinPage;
WORD nMaxPage;
WORD nCopies;
HINSTANCE hInstance;
DWORD lCustData;
LPPRINTHOOKPROC lpfnPrintHook;
LPSETUPHOOKPROC lpfnSetupHook;
LPCTSTR lpPrintTemplateName;
LPCTSTR lpSetupTemplateName;
HANDLE hPrintTemplate;
HANDLE hSetupTemplate;
} PRINTDLG;

Элементы
lStructSize
Определяет размер структуры, в байтах.
hwndOwner
Идентифицирует окно, которое владеет блоком диалога. Этот элемент может быть любым допустимым дескриптором окна, или это может быть значение ПУСТО (NULL), если диалоговое окно не имеет никакого владельца.
hDevMode
Идентифицирует перемещаемый объект глобальной памяти, который содержит структуру DEVMODE. Перед вызовом функции PrintDlg, элементы структуры могут содержать данные, используемые, чтобы инициализировать элементы управления диалогового окна. Когда PrintDlg возвращает значение, элементы структуры определяют состояние управляющих элементов диалогового окна.
Если вы используете структуру, чтобы инициализировать управляющие элементы диалогового окна, вы должны распределить доступное пространство памяти и создать структуру DEVMODE. (Вы должны распределить перемещаемый блок памяти).
Если вы не используете структуру, чтобы инициализировать управляющие элементы диалогового окна, hDevMode может иметь значение ПУСТО (NULL). В этом случае, PrintDlg распределяет память для структуры, инициализирует ее элементы и возвращает дескриптор, который идентифицирует структуру.
Если драйвер устройства для определяемого принтера не поддерживает расширенные режимы устройства, когда PrintDlg возвращает значение,то элемент hDevMode имеет значение ПУСТО (NULL).
Если имя устройства (определенное элементом dmDeviceName структуры DEVMODE) не появляется в разделе [devices (устройства)] WIN.INI, PrintDlg возвращает значение ошибки.
Потому что эта структура - перемещаемый объект глобальной памяти, значение которого в hDevMode может изменяться в ходе выполнения PrintDlg.
Для обсуждения того, как система решает возможный конфликт на уровне данных между значениями определеными элементами hDevMode и hDevNames, см. следующий раздел Замечаний.
hDevNamesDEVNAMES. Эта структура содержит три строки, которые определяют название драйвера, название принтера и имя порта вывода данных. Перед вызовом PrintDlg, элементы структуры содержат строки, используемые, чтобы инициализировать управляющие элементы диалогового окна. Когда PrintDlg возвращает значение, элементы структуры содержат строки, введенные с клавиатуры пользователем. Вызывающая прикладная программа использует эти строки, чтобы создать контекст устройства или информационный контекст.
Если вы используете структуру, чтобы инициализировать управляющие элементы диалогового окна, то должны распределить доступную память и создать структуру DEVNAMES. (Вы должны разместить перемещаемый блок общей памяти.)
Если вы не используете структуру, чтобы инициализировать управляющие элементы диалогового окна, hDevNames может иметь значение ПУСТО (NULL). В этом случае, PrintDlg распределяет память для структуры, инициализирует элементы (при помощи использования названия принтера, определяемого в структуре DEVMODE) и возвращает дескриптор, который идентифицирует ее. Функция PrintDlg использует первое название порта, которое принято в разделе [devices устройств] WIN.INI, когда она инициализирует элементы в структуре DEVNAMES. Например, функция использует "LPT1:" как имя порта, если следующая строка применена в разделее [devices устройств]:

PCL / HP LaserJet=HPPCL,LPT1:,LPT2:

Если и hDevMode, и hDevNames имеют значение ПУСТО (NULL), PrintDlg инициализирует hDevNames, используя текущий принтер, заданный по умолчанию.
Поскольку эта структура - перемещаемый объект глобальной памяти, значение hDevNames может изменяться в ходе выполнения PrintDlg.
Для обсуждения того, как система решает возможный конфликт на уровне данных между значениями определяемыми hDevNames и hDevMode, см. раздел Замечаний позже в этой статье.
hDC
Идентифицирует контекст устройства или информационный контекст, в зависимости от того, определяет ли элемент Flags флажок PC_RETURNIC или PD_RETURNDC. Если никакой флажок не установлен, значение этого элемента неопределено. Если оба флажка установлены, флажок PD_RETURNDC имеет приоритет.
Flags
Набор битовых флажков, который вы можете использовать, чтобы инициализировать стандартное диалоговое окно Печать (Print). Когда блок диалога возвращает значение, он устанавливает эти флажки, чтобы обозначить ввод данных пользователем. Этот элемент может быть комбинацией следующих флажков:

  • PD_ALLPAGES - Заданный по умолчанию флажок, который обозначает, что вначале была выбрана радио-кнопка Все (All). Этот флажок используется как символ - заместитель, чтобы обозначить, что флажки PD_PAGENUMS и PD_SELECTION не определены.
  • PD_COLLATE - Когда установливается ввод данных, ставит "галочку" в окошке метки Разложить по копиям (Collate),. Когда функция PrintDlg возвращает значение, этот флажок обозначает, что пользователь выбрал параметр Разложить по копиям (Collate), а драйвер принтера не поддерживает комплектовку. В данном случае, прикладная программа должна обеспечить комплектовку. Если функция PrintDlg устанавливает флажок PD_COLLATE при возврате значения, элемент dmCollate структуры DEVMODE неопределен.
  • PD_DISABLEPRINTTOFILE - Отключает окошко отмечаемого блока Печать в файл (Print to File).
  • PD_ENABLEPRINTHOOK - Включает фильтр (hook) - процедуру, определяемую в элементе lpfnPrintHook. Это включение разрешает работу фильтр (hook) - процедуры для диалогового окна Печать (Print).
  • PD_ENABLEPRINTTEMPLATE - Обозначает, что элементы hInstance и lpPrintTemplateName определяют шаблон диалогового окна, который используется вместо заданного по умолчанию шаблона для диалогового окна Печать (Print).
  • PD_ENABLEPRINTTEMPLATEHANDLE - Обозначает, что элемент hPrintTemplate идентифицирует блок данных, который содержит предварительно загруженный шаблон диалогового окна. Система использует этот шаблон вместо заданного по умолчанию шаблона для диалогового окна Печать (Print). Система игнорирует элемент lpPrintTemplateName, если этот флажок определен.
  • PD_ENABLESETUPHOOK - Включает фильтр (hook) - процедуру, определяемую в элементе lpfnSetupHook. Флажок включает фильтр (hook) - процедуру для диалогового окна Параметры печати (Print Setup).
  • PD_ENABLESETUPTEMPLATE - Обозначает, что элементы hInstance и lpSetupTemplateName определяют шаблон диалогового окна, который используется вместо заданного по умолчанию шаблона для диалогового окна Параметры печати (Print Setup).
  • PD_ENABLESETUPTEMPLATEHANDLE - Обозначает, что элемент hSetupTemplate идентифицирует блок данных, который содержит предварительно загруженный шаблон диалогового окна. Система использует этот шаблон вместо заданного по умолчанию шаблона для диалогового окна Параметры печати (Print Setup). Система игнорирует элемент lpSetupTemplateName, если этот флажок определен.
  • PD_HIDEPRINTTOFILE - Скрывает окошко отмечаемого блока Печатать в файл (Print to File).
  • PD_NOPAGENUMS - Отключает радио-кнопки блока Страницы (Pages) и связанные с ним поля редактирования текста.
  • PD_NOSELECTION - Отключает радио-кнопку Выделенный фрагмент (Selection).
  • PD_NOWARNING - Не допускает показа предупреждающего сообщения на экране, когда нет никакого заданного по умолчанию принтера.
  • PD_PAGENUMS - Заставляет радио-кнопки блока Страницы (Pages), быть в выбранном состоянии, когда диалоговое окно создано. Когда функция PrintDlg возвращает значение, этот флажок установливает радио-кнопки блока Страницы (Pages) находится в выбранном состоянии.
  • PD_PRINTSETUP - Заставляет систему показать на экране диалоговое окно Параметры печати (Print Setup), а не диалоговое окно Печать (Print).
  • PD_PRINTTOFILE - Заставляет окошко отмечаемого блока Печать в файл(Print to File) быть отмеченым "галочкой", когда диалоговое окно создано. Когда функция PrintDlg возвращает значение, этот флажок установлен, если окошко отмечено "галочкой". В данном случае, смещение, указанное элементом wOutputOffset структуры DEVNAMES содержит строку " ФАЙЛ: ". Когда вы вызываете функцию StartDoc, чтобы начать операцию печати, определите эту строку " ФАЙЛ: " в элементе lpszOutput структуры DOCINFO. Определение этой строки вынуждает) подсистему печати сделать запрос пользователю, чтобы он определил название выходного файла.
  • PD_RETURNDC - Заставляет функцию PrintDlg возвратить контекст устройства, соответствующий выбору пользователя, сделанному в диалоговом окне. Контекст устройства возвращается в hDC.
  • PD_RETURNDEFAULT - Функция PrintDlg не показывает на экране диалоговое окно. Вместо этого, она устанавливает в элементах hDevNames и hDevMode дескрипторы структур DEVMODE и DEVNAMES, которые инициализированы для системного принтера по умолчанию. И hDevNames, и hDevMode должны иметь значение ПУСТО (NULL), или PrintDlg возвратит значение ошибки. Если системный по умолчанию принтер поддерживается старым драйвером принтера (ранее чем версия 3.0 Windows), значение возвращает только hDevNames; у элемента hDevMode - значение ПУСТО (NULL).
  • PD_RETURNIC - Подобен флажку PD_RETURNDC, за исключением того, что этот флажок возвращает информационный контекста не контекст устройства. Если ни PD_RETURNDC ни PD_RETURNIC не определен, hDC при выводе данных неопределен.
  • PD_SELECTION - Заставляет блок радио-кнопок Выбор (Selection) быть в выбранном состоянии, когда диалоговое окно создано. Когда PrintDlg возвращает значение, если радио-кнопка в блоке Выбор (Selection) выбрана, этот флажок определен. Если ни флажок PD_PAGENUMS, ни флажок PD_SELECTION не установлен, то выбрана радио-кнопка Все (All).
  • PD_SHOWHELP - Заставляет диалоговое окно показать на экране кнопку Справка (Help). Элемент hwndOwner должен определить окно, чтобы принять зарегистрированные сообщения HELPMSGSTRING, которые блок диалога передает, когда пользователь щелкает кнопкой мыши по кнопке Справка (Help).
  • PD_USEDEVMODECOPIES - Такой же как PD_USEDEVMODECOPIESANDCOLLATE
  • PD_USEDEVMODECOPIESANDCOLLATE - Отключает поле редактирования текста Число копий (Copies), если драйвер принтера не поддерживает многочисленные копии, и отключает переключатель Разложить по копиям (Collate), если драйвер принтера не поддерживает комплектовку. Если этот флажок не определен, PrintDlg сохраняет выбор пользователем параметров Число копий (Copies) и Разложить по копиям (Collate) в элементах dmCopies и dmCollate структуры DEVMODE. Если этот флажок не установлен, информация о копировании и раскладке по копиям возвращается в структуре DEVMODE, если драйвер поддерживает многочисленные копии и комплектовку. Если драйвер не поддерживает многочисленные копии и комплектовку, информация возвращается в структуре PRINTDLG. Это означает, что прикладная программа должна только рассмотреть nCopies и PD_COLLATE, чтобы установить, сколько копий требуется выполнить и требуется ли при печатати раскладывать их по копиям.

nFromPage
Определяет исходное значение для начального поля редактирования текста страницы. Когда функция PrintDlg возвращает значение, элемент nFromPage определяет, что начальная страница задана пользователем. Это значение правильно, только в том случае, если определен флажок PD_PAGENUMS.
nToPage
Определяет исходное значение для конечного поля редактирования текста страницы. Когда функция PrintDlg возвращает значение, элемент nToPage определяет, что конечная страница задана пользователем. Это значение правильно, только в том случае, если определен флажок PD_PAGENUMS.
nMinPage
Определяет минимальное значение для диапазона страниц, определяемых в редактируемых полях От (From) и До (To).
nMaxPage
Определяет максимальное значение для диапазона страниц, определяемых в редактируемых полях От (From) и До (To).
nCopies
Если элемент hDevMode имеет значение ПУСТО (NULL), то содержит исходный тираж для поля редактирования в блоке Копии (Copies); иначе, элемент dmCopies структуры DEVMODE содержит начальное значение. Когда PrintDlg возвращает значения, этот элемент содержит фактический тираж для печати. Если драйвер принтера не поддерживает многочисленные копии, это значение может быть большее чем одна копия и прикладная программа должна отпечатать все запрошенные копии. Если в элементе Flags установлено значение PD_USEDEVMODECOPIESANDCOLLATE, nCopies, при возврате, всегда устанавливается в 1, а элемент dmCopies в DEVMODE принимает фактический тираж, для печати.
hInstance
Если в элементе Flags установлен флажок PD_ENABLEPRINTTEMPLATE или PD_ENABLESETUPTEMPLATE, hInstance - дескриптор прикладной программы или экземпляра модуля, который содержит шаблон диалогового окна, именованный элементом lpPrintTemplateName или lpSetupTemplateName.
lCustData
Устанавливает определяемые программой данные, которые система передает фильтр (hook) - процедуре, идентифицированной элементом lpfnPrintHook или lpfnSetupHook. Когда система посылает сообщение WM_INITDIALOG фильтр (hook) - процедуре, параметр сообщения lParam - указатель на структуру PRINTDLG, которая была определена, когда диалоговое окно было создано. Фильтр (hook) - процедура может использовать этот указатель, чтобы получить значение lCustData.
lpfnPrintHook
Указатель на фильтр (hook) - процедуру PrintHookProc, которая может обрабатывать сообщения, предназначенные для диалогового окна Печать (Print). Этот элемент игнорируется, если в элементе Flags не установлен флажок PD_ENABLEPRINTHOOK.
lpfnSetupHook
Указатель на фильтр (hook) - процедуру SetupHookProc, которая может обрабатывать сообщения, предназначенные для диалогового окна Параметры печати (Print Setup). Этот элемент игнорируется, если в элементе Flags не установлен флажок PD_ENABLESETUPHOOK.
lpPrintTemplateName
Указатель на строку с символом нуля в конце, которая именует ресурс шаблона диалогового окна в модуле, идентифицированном элементом hInstance. Этот шаблон замещает стандартный шаблон диалогового окна Печать (Print). Этот элемент игноририруется, если в элементе Flags не установлен флажок PD_ENABLEPRINTTEMPLATE.
lpSetupTemplateName
Указатель на строку с символом нуля в конце, которая именует ресурс шаблона диалогового окна в модуле, идентифицированном элементом hInstance. Этот шаблон замещает стандартный шаблон диалогового окна Параметры печати (Print Setup). Этот элемент игноририруется, если в Элементе Flags не установлен флажок PD_ENABLESETUPTEMPLATE.
hPrintTemplate
Если в элементе Flags установлен флажок PD_ENABLEPRINTTEMPLATEHANDLE, hPrintTemplate - дескриптор объекта памяти, содержащего шаблон диалогового окна. Этот шаблон замещает стандартный шаблон диалогового окна Печать (Print).
hSetupTemplate
Если в элементе Flags установлен флажок PD_ENABLESETUPTEMPLATEHANDLE, hSetupTemplate - дескриптор объекта памяти, содержащего шаблон диалогового окна. Этот шаблон замещает стандартный шаблон диалогового окна Параметры печати (Print Setup).

Замечания
Имеется возможность конфликта на уровне данных между значениями, определяемыми элементами hDevNames и hDevMode, потому что элемент wDeviceOffset структуры DEVNAMES, как предполагается, является идентичным элементу dmDeviceName структуры DEVMODE. Если это не так, система решает конфликт на уровне данных при помощи использования значения wDeviceOffset.
Если пользователь отмечает "галочкой" окошко метки Разобрать по копиям (Collate) в стандартном диалоговом окне Печать (Print), но драйвер принтера не поддерживает комплектовку, элемент Flags структуры PRINTDLG, возвращенный при помощи PrintDlg включает в себя флажок PD_COLLATE. Кроме того, элемент dmCollate структуры DEVMODE, идентифицированной элементом hDevMode установливается в COLLATE_TRUE. Если флажок PD_COLLATE установлен, прикладная программа должна симулировать комплектовку.
Если флажок PD_USEDEVMODECOPIESANDCOLLATE установлен, окошко метки Разобрать по копиям (Collate) внешне недоступно, если драйвер принтера не поддерживает комплектовку. Это гарантирует то, что пользователь может только выбирать одну копию, и в элементе nCopies будет единица. Если драйвер поддерживает многочисленные копии, dmCopies будет содержать тираж, а в nCopies будет единица.
При записи в функцию PrintDlg, элемент nCopies структуры PRINTDLG определяет тираж, если флажок PD_USEDEVMODECOPIESANDCOLLATE не установлен. При выходе из PrintDlg, nCopies содержит тираж, если драйвер принтера не поддерживает многочисленные копии. Иначе он устанавливается в единицу. Если nCopies больше чем единица при выходе из PrintDlg, прикладная программа должна отпечатать многочисленные копии документа.

Смотри также
CreateDC, CreateIC, PrintDlg, DEVMODE, DEVNAMES, WM_INITDIALOG

Размещение и совместимость PRINTDLG

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл winspool.h
Unicode WinNT
Замечания по платформе Не имеется


Структура OFNOTIFY

[Теперь поддерживается в Windows NT]

Структура OFNOTIFY содержит информацию о сообщении WM_NOTIFY, которое передается фильтр - процедуре диалоговым окном Открыть (Open) или Сохранить как (Save As) в стиле Проводника. Адрес структуры OFNOTIFY посылается как параметр lParam сообщения WM_NOTIFY.

Синтаксис

typedef struct _OFNOTIFY 
{
NMHDR hdr;
LPOPENFILENAME lpOFN;
LPTSTR pszFile;
} OFNOTIFY, FAR *LPOFNOTIFY;

Элементы
hdr
Определяет структуру NMHDR. Код элемента структуры NMHDR может быть одним из следующих кодов уведомления, которые идентифицируют передаваемое сообщение: CDN_FILEOK, CDN_FOLDERCHANGE, CDN_HELP, CDN_INITDONE, CDN_SELCHANGE, CDN_SHAREVIOLATION, CDN_TYPECHANGE.
lpOFN
Указатель на структуру OPENFILENAME, которая была определена, когда было создано диалоговое окно Открыть (Open) или Сохранить как (Save As). Для некоторых из уведомительных сообщений, эта структура содержит дополнительную информацию относительно события, которое стало причиной уведомления.
pszFile
Указатель на имя файла, для которого произошла сетевая ошибка совместного доступа. Этот элемент допустим только с уведомительным сообщением CDN_SHAREVIOLATION.

Смотри также
CDN_FILEOK, CDN_FOLDERCHANGE, CDN_HELP, CDN_INITDONE, CDN_SELCHANGE, CDN_SHAREVIOLATION, CDN_TYPECHANGE, NMHDR, OPENFILENAME

Размещение и совместимость OFNOTIFY

Windows NT			Да 
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode Нет
Замечания по платформе Не имеется


 

Сообщения стандартного диалогового окна

Зарегистрированное сообщение COLOROKSTRING

Диалоговое окно Цвет (Color) передает зарегистрированное сообщение COLOROKSTRING вашей фильтр - процедуре, когда пользователь выбирает цвет и щелкает мышью по кнопке OK. Фильтр - процедура может принять цвет и позволить блоку диалога закрыться, или отклонить цвет и заставить диалоговое окно оставаться открытым.

Синтаксис

MessageID = RegisterWindowMessage(COLOROKSTRING);
wParam = 0;
lpcc = (LPCHOOSECOLOR) lParam;

Параметры
lpcc
Указатель на структуру CHOOSECOLOR. Элемент rgbResult этой структуры содержит значения RGB выбранного цвета.

Возвращаемые значения
Если фильтр - процедура возвращает значение нуль, блок диалога Цвет (Color) принимает выбранный цвет и закрывается.
Если фильтр - процедура возвращает значение не нуль, диалоговое окно Цвет (Color) отклоняет выбранный цвет и остается открытым.

Замечания
Фильтр - процедура должна определить константу COLOROKSTRING при вызове функции RegisterWindowMessage, чтобы получить идентификатор для сообщения, переданного диалоговым окном.

Смотри также
CHOOSECOLOR, RegisterWindowMessage

Размещение и совместимость COLOROKSTRING

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется

 

Зарегистрированное сообщение FILEOKSTRING

Диалоговое окно Открыть (Open) или Сохранить как (Save As) передает зарегистрированное сообщение FILEOKSTRING вашей фильтр - процедуре, когда пользователь определяет имя файла и щелкает мышью по кнопке OK. Фильтр - процедура может принять имя файла и позволить блоку диалога закрыться, или отклонить имя файла и заставить диалоговое окно оставаться открытым.

В диалоговых окнах Открыть (Open) и Сохранить как (Save As) стиле Проводника это сообщение было заменено уведомительным сообщением CDN_FILEOK.

Синтаксис

MessageID = RegisterWindowMessage(FILEOKSTRING);
wParam = 0;
lpofn = (LPOPENFILENAME) lParam;

Параметры
lpofn
Указатель на структуру OPENFILENAME. Элемент lpstrFile этой структуры содержит диск, путь и имя файла указанное пользователем.

Возвращаемые значения
Если фильтр - процедура возвращает значение нуль, диалоговое окно Открыть (Open) или Сохранить как (Save As) принимает заданное имя файла и закрывается.
Если фильтр - процедура возвращает значение отличное от нуля, диалоговое окно Открыть (Open) или Сохранить как (Save As) отклоняет заданное имя файла и остается открытым.

Замечания
Фильтр - процедура должна определить константу FILEOKSTRING при вызове функции RegisterWindowMessage, чтобы получить идентификатор для сообщения, переданного диалоговым окном.

Смотри также
CDN_FILEOK, OPENFILENAME, RegisterWindowMessage

Размещение и совместимость FILEOKSTRING

Windows NT				Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется


Зарегистрированное сообщение FINDMSGSTRING

Диалоговое окно Найти (Find) или Заменить (Replace) передает зарегистрированное сообщение FINDMSGSTRING в оконную процедуру окна, которое им владеет тогда, когда пользователь щелкает мышью по кнопке Найти далее (Find Next), Заменить (Replace) или Заменить все (Replace All), или закрывает блок диалога.

Синтаксис

MessageID = RegisterWindowMessage(FINDMSGSTRING);
wParam = 0;
lpfr = (LPFINDREPLACE) lParam;

Параметры
lpfr
Указатель на структуру FINDREPLACE. Элементы этой структуры содержат последние данные, введенные пользователем, которые включают в себя последовательность символов для поиска, последовательность символов на замену (если надо) и параметры поиска и замены.

Возвращаемые значения
Возвращаемых значений нет.

Замечания
Вы должны определить константу FINDMSGSTRING при вызове функции RegisterWindowMessage, чтобы получить идентификатор для сообщения, переданного диалоговым окном.
Когда вы создаете блок диалога, чтобы идентифицировать окно, которое примет сообщения FINDMSGSTRING, используете элемент hwndOwner структуры FINDREPLACE.
Элемент Flags структуры FINDREPLACE включает в себя один из следующих флажков, чтобы указать событие, которое стало причиной сообщения:

  • FR_DIALOGTERM - Диалоговое окно закрывается. После того, как окно владельца обрабатывает это сообщение, дескриптор блока диалога больше не правилен.
  • FR_FINDNEXT - Пользователь нажал кнопку Найти далее (Find Next) в диалоговом окне Найти (Find) или Заменить (Replace). Элемент lpstrFindWhat определяет строку, для поиска.
  • FR_REPLACEALL - Пользователь нажал кнопку Заменить все (Replace All) в диалоговом окне Заменить (Replace). Элемент lpstrFindWhat определяет строку, которую надо заменить, а элемент lpstrReplaceWith определяет строку, которой надо заменить.

В сообщениях от кнопок Найти далее (Find Next) или Заменить все (Replace All), элемент Flags, чтобы обозначить параметры поиска, может включать любую комбинацию следующих флажков:

  • FR_DOWN - Если он установлен, среди "радио"-кнопок направления выбрана кнопка Вниз (Down), указывая, что пользователь хочет искать от текущего расположения курсора до конца документа. Если FR_DOWN не установлен, выбрана кнопка Вверх (Up), то есть пользователь хочет искать от курсора в начало документа.
  • FR_MATCHCASE - Если он установлен, в отмечаемом окошке С учетом регистра (Match Case) проставляется "галочка", указывая, что пользователь хочет, чтобы поиск был чувствительным к регистру. Если FR_MATCHCASE не установлен, окошко для флажка без "галочки", так что поиск должен осуществляться без учета регистра.
  • FR_WHOLEWORD - Если он установлен, в отмечаемом окошке Только слово целиком (Match Whole word only) проставляется "галочка", указывая, что пользователь хочет искать только целые слова, которые соответствуют строке для поиска. Если FR_WHOLEWORD не установлен, окошко для флажка без "галочки", так что вы должны также искать фрагменты слова, которые соответствуют строке для поиска.

Смотри также
FINDREPLACE, RegisterWindowMessage

Размещение и совместимость FINDMSGSTRING

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется

 

Зарегистрированное сообщение HELPMSGSTRING

Стандартное диалоговое окно передает зарегистрированное сообщение HELPMSGSTRING в оконную процедуру его окна владельца, когда пользователь щелкает мышью по кнопке Справка (Help).
Для диалоговых окон Открыть (Open) и Сохранить как (Save As) в стиле Проводника это сообщение было заменено предупредительным сообщением CDN_HELP.

Синтаксис

MessageID = RegisterWindowMessage(HELPMSGSTRING);
hdlg = (HWND) wParam;
lpStruct = (LPVOID) lParam;

Параметры
hdlg
Дескриптор стандартного диалогового окна.
lpStruct
Указатель на инициализированную структуру для стандартного диалогового окна. Этой структурой могут быть структуры CHOOSECOLOR, CHOOSEFONT, FINDREPLACE, OPENFILENAME, PRINTDLG или PAGESETUPDLG.

Возвращаемые значения
Возвращаемых значений нет.

Замечания
Вы должны определить константу HELPMSGSTRING при вызове функции RegisterWindowMessage, чтобы получить идентификатор для сообщения, переданного диалоговым окном.
Когда вы создаете блок диалога, чтобы идентифицировать окно, которое примет сообщения HELPMSGSTRING, используете элемент hwndOwner структуры инициализации.

Смотри также
CDN_HELP, CHOOSECOLOR, CHOOSEFONT, FINDREPLACE, OPENFILENAME, PRINTDLG, PAGESETUPDLG, RegisterWindowMessage

Размещение и совместимость HELPMSGSTRING

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется


Зарегистрированное сообщение LBSELCHSTRING

Диалоговое окно Открыть (Open) или Сохранить как (Save As) передает зарегистрированное сообщение LBSELCHSTRING вашей фильтр - процедуре, когда в каком-либо из окон списка или комбинированных блоков диалогового окна изменяется выбор.
В блоках диалога Открыть (Open) и Сохранить как (Save As) в стиле Проводника это сообщение было заменено сообщениями CDN_TYPECHANGE и CDN_SELCHANGE.

Синтаксис

MessageID = RegisterWindowMessage(LBSELCHSTRING);
idListBox = (UINT) wParam;
iItem = LOWORD (lParam);
iType = HIWORD (lParam);

Параметры
idListBox
Идентификатор окна списка или комбинированного блока, в котором изменился выбор.
iItem
Номер элемента выбранной строки в окне списка или комбинированном блоке.
iType
Тип изменения выбора. Этот параметр может быть одним из следующих значений:

  • CD_LBSELCHANGE - Элемент, идентифицированный iItem - единственный элемент, выбранный в окне списка с единственным элементом для выбора.
  • CD_LBSELADD - Элемент, идентифицированный iItem - один из элементов, выбранный в окне списка с многочисленными элементами для выбора.
  • CD_LBSELSUB - Элемент, идентифицированный iItem - больше не выбран в окне списка с многочисленными элементами для выбора.
  • CD_LBSELNOITEMS - В окне списка с многочисленными элементами для выбора элементов не существует.

Возвращаемые значения
Возвращаемых значений нет.

Замечания
Фильтр - процедура должна определить константу LBSELCHSTRING при вызове функции RegisterWindowMessage, чтобы получить идентификатор для сообщения, переданного диалоговым окном.

Смотри также
CDN_SELCHANGE, CDN_TYPECHANGE, RegisterWindowMessage

Размещение и совместимость LBSELCHSTRING

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode Нет
Замечания по платформе Не имеется


Зарегистрированное сообщение SETRGBSTRING

Фильтр - процедура диалогового окна Цвет (Color) может передавать зарегистрированное сообщение SETRGBSTRING блоку диалога, чтобы установить текущий выбранный цвет.

Синтаксис

MessageID = RegisterWindowMessage(SETRGBSTRING);
wParam = 0;
lParam = (COLORREF) rgbColor;

Параметры
rgbColor
Определяет значение RGB цвета, который выбран в диалоговом окне Цвет (Color). Вы можете использовать макрокоманду RGB, чтобы определить значение интенсивности RGB красного, зеленого и синего цвета.

Возвращаемые значения
Возвращаемых значений нет.

Замечания
Если rgbColor соответствует одному из основных цветов или одному из 16 дополнительных цветов, процедура диалогового окна выбирает этот цвет. Процедура диалогового окна также модифицирует все элементы управления в дополнительном пользовательском цвете блока диалога Цвет (Color), если оно открыто.
Если rgbColor не соответствует основному или дополнительному цвету, процедура диалогового окна не изменяет текущий выбранный цвет, но она обновляет цвет элементов управления, если они видимы.
Например, следующий типовой код получает код сообщения SETRGBSTRING, а затем устанавливает выбранный цвета в синий.

UINT uiSetRGB;
uiSetRGB = RegisterWindowMessage(SETRGBSTRING);
SendMessage(hwndDlg, uiSetRGB, 0, (LPARAM) RGB(0, 0, 255));

Смотри также
RegisterWindowMessage, RGB, SendMessage

Размещение и совместимость SETRGBSTRING

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode Нет
Замечания по платформе Не имеется


Зарегистрированное сообщение SHAREVISTRING

Диалоговое окно Открыть (Open) или Сохранить как (Save As) передает зарегистрированное сообщение SHAREVISTRING вашей фильтр - процедуре, если для выбранного файла происходит ошибка совместного доступа, когда пользователь щелкает мышью по кнопке OK.
В диалоговых окнах Открыть (Open) и Сохранить как (Save As) в стиле Проводника , это сообщение было заменено уведомительным сообщением CDN_SHAREVIOLATION.

Синтаксис

MessageID = RegisterWindowMessage(SHAREVISTRING);
wParam = 0;
lpofn = (LPOPENFILENAME) lParam;

Параметры
lpofn
Указатель на структуру OPENFILENAME. Элемент lpstrFile этой структуры содержит имя файла, которое стало причиной ошибки совместного доступа.

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

  • OFN_SHAREFALLTHROUGH - Согласится с именем файла.
  • OFN_SHARENOWARN - Отклоняется имя файла, но пользователь не предупреждается. Прикладная программа ответственна за отображение на экране предупреждающего сообщения.
  • OFN_SHAREWARN - Отклоняется имя файла и отображается предупреждающее сообщение (тот же самый результат, как будто нет никакой фильтр - процедуры).

Замечания
Фильтр - процедура должна определить константу SHAREVISTRING при вызове функции RegisterWindowMessage, чтобы получить идентификатор для сообщения, переданного блоком диалога.
Диалоговое окно передает зарегистрированное сообщение SHAREVISTRING, только тогда, если вы, когда создавали диалог, не определили флажок OFN_SHAREAWARE в элементе Flags структуры OPENFILENAME.
Если фильтр - процедура возвращает неопределенное значение, блок диалога отвечает, как если бы было возвращено значение OFN_SHAREWARN.

Смотри также
CDN_SHAREVIOLATION, OPENFILENAME, RegisterWindowMessage

Размещение и совместимость SHAREVISTRING

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется


Сообщение WM_CHOOSEFONT_GETLOGFONT

Сообщение WM_CHOOSEFONT_GETLOGFONT передается диалоговому окну Шрифт (Font), чтобы извлечь информацию о выборе текущего шрифта пользователем.

Синтаксис

WM_CHOOSEFONT_GETLOGFONT
wParam = 0; // не используется, должен быть нуль
lParam = (LPLOGFONT) lplf; // адрес структуры с данными шрифта

Параметры
lplf
Указатель на структуру LOGFONT, которая принимает информацию о выборе текущего шрифта пользователем.

Возвращаемые значения
Это сообщение не возвращает значений.

Замечания
Функция ChooseFont создает диалоговое окно Шрифт (Font). Когда пользователь закрывает этот блок диалога, функция ChooseFont возвращает информацию о выборе шрифта пользователем в структуре CHOOSEFONT. Элемент lpLogFont структуры CHOOSEFONT - указатель на структуру LOGFONT.
Используйте сообщение WM_CHOOSEFONT_GETLOGFONT, чтобы получить информацию о текущих выбранных шрифтах пользователем, пока диалоговое окно Шрифт (Font) открыто. Например, если вы включаете кнопку Применить (Apply) в этом блоке диалога, то передайте это сообщение, чтобы заставить информацию о шрифте применить к текущему выбранному тексту.
Как правило, вы даете возможность фильтр - процедуре CFHookProc обработать сообщения WM_COMMAND для кнопки Применить (Apply). Когда пользователь щелкает мышью по этой кнопке, фильтр - процедура передает сообщение WM_CHOOSEFONT_GETLOGFONT диалоговому окну.

Смотри также
CFHookProc, ChooseFont, CHOOSEFONT, LOGFONT, WM_COMMAND

Размещение и совместимость WM_CHOOSEFONT_GETLOGFONT

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется


Сообщение WM_CHOOSEFONT_SETFLAGS

Сообщение WM_CHOOSEFONT_SETFLAGS передается диалоговому окну Шрифт (Font), чтобы установить параметры отображения на экране блока диалога.

Синтаксис

WM_CHOOSEFONT_SETFLAGS
wParam = 0; // не используется, должен быть нуль
lParam = (LPCHOOSEFONT) lpcf; // адрес структуры с данными на флажки

Параметры
lpcf Указатель на структуру CHOOSEFONT, которая содержит в элементе Flags новые параметры настройки.

Возвращаемые значения
Возвращаемых значений нет.

Замечания
Функция ChooseFont создает диалоговое окно Шрифт (Font) и использует структуру CHOOSEFONT, чтобы определить начальные значения для элемента Flags. Сообщение WM_CHOOSEFONT_SETFLAGS используется, чтобы определить другие значения для элемента Flags, пока блок диалога Шрифт (Font) открыт.
Как правило, сообщение WM_CHOOSEFONT_SETFLAGS вы должны передать из фильтр - процедуры CFHookProc.

Смотри также
CFHookProc, ChooseFont, CHOOSEFONT

Размещение и совместимость WM_CHOOSEFONT_SETFLAGS

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется

 

Сообщение WM_CHOOSEFONT_SETLOGFONT

Сообщение WM_CHOOSEFONT_SETLOGFONT передается диалоговому окну Шрифт (Font), чтобы установить текущую информацию о логическом шрифте.

Синтаксис

WM_CHOOSEFONT_SETLOGFONT
wParam = 0; // не используется, должен быть нуль
lParam = (LPLOGFONT) lplf; // адрес структуры с данными на шрифт

Параметры
lplf
Указатель на структуру LOGFONT, которая содержит информацию о текущем логическом шрифте.

Возвращаемые значения
Возвращаемых значений нет.

Замечания
Когда вы вызываете функцию ChooseFont, чтобы создать диалоговое окно Шрифт (Font), вы можете использовать элемент lpLogFont структуры CHOOSEFONT, чтобы определить структуру LOGFONT, содержащую начальные значения для блока диалога. Чтобы определить структуру LOGFONT с другими значениями, используйте сообщение WM_CHOOSEFONT_SETLOGFONT, пока диалоговое окно Шрифт (Font) открыто.
Как правило, сообщение WM_CHOOSEFONT_SETLOGFONT передается из фильтр - процедуры CFHookProc. Фильтр - процедура может также передавать сообщения WM_CHOOSEFONT_SETFLAGS и WM_CHOOSEFONT_GETLOGFONT.

Смотри также CFHookProc, ChooseFont, CHOOSEFONT, LOGFONT, WM_CHOOSEFONT_GETLOGFONT, WM_CHOOSEFONT_SETFLAGS

Размещение и совместимость WM_CHOOSEFONT_SETLOGFONT

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется


Сообщение WM_PSD_ENVSTAMPRECT

Сообщение WM_PSD_ENVSTAMPRECT уведомляет фильтр - процедуру диалогового окна Параметры страницы (Page Setup), что блок диалога собирается чертить прямоугольник марки конверта в шаблоне страницы.

Синтаксис

WM_PSD_ENVSTAMPRECT
hDC = (WPARAM) (HDC) wParam; // дескриптор контекста устройства
lprcEnvStamp = (LPARAM) (LPRECT) lParam; // прямоугольник марки конверта

Параметры
hDC
Значение wParam. Идентифицирует контекст устройства для макета станицы.
lprcMargin
Значение lParam. Указатель на структуру RECT, которая содержит координаты, в пикселях, прямоугольника марки конверта.

Возвращаемые значения
Если фильтр - процедура возвращает значение ИСТИНА (TRUE), диалоговое окно не рисует блок марки конверта макета страницы.
Если фильтр - процедура возвращает значение ЛОЖЬ(FALSE), блок диалога рисует блок марки конверта макета страницы.

Замечания
Диалоговое окно Параметры страницы (Page Setup) включает в себя изображение макета страницы, который показывает, как выбор пользователя воздействуют на внешний вид напечатанного вывода информации. Когда вы вызываете функцию PageSetupDlg, то можете предоставить фильтр - процедуру PagePaintHook, чтобы настроить внешний вид макета страницы. Всякий раз, когда блок диалога собирается рисовать содержимое макета страницы, диалоговое окно передает последовательность сообщений WM_PSD* фильтр - процедуре.
Фильтр - процедура принимает это сообщение только тогда, если выбранный тип бумаги является конверт.

Смотри также
PagePaintHook, PageSetupDlg, RECT, WM_PSD_PAGESETUPDLG

Размещение и совместимость WM_PSD_ENVSTAMPRECT

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется

 

Сообщение WM_PSD_FULLPAGERECT

Сообщение WM_PSD_FULLPAGERECT ставит в известность фильтр - процедуру PagePaintHook о координатах прямоугольника макета страницы в диалоговом окне Параметры страницы (Page Setup). Блок диалога передает это сообщение, когда он собирается рисовать содержимое макета страницы.

Синтаксис

WM_PSD_FULLPAGERECT
hDC = (WPARAM) (HDC) wParam; // дескриптор контекста устройства
lprcPage = (LPARAM) (LPRECT) lParam; // размеры прямоугольника страницы

Параметры
hDC
Значение wParam. Дескриптор контекста устройства для макета страницы.
lprcPage
Значение lParam. Указатель на структуру RECT, которая содержит координаты, в пикселях, макета страницы.

Возвращаемые значения
Если фильтр - процедура возвращает значение ИСТИНА (TRUE), диалоговое окно больше не передает сообщения WM_PSD* и не рисует в макете страницы до тех пор, пока в следующий раз системе не потребуется перерисовать макет страницы.
Если фильтр - процедура возвращает значение ЛОЖЬ(FALSE), блок диалога передает оставшиеся сообщения прядке следования прорисовки.

Замечания
Диалоговое окно Параметры страницы (Page Setup) включает в себя изображение макета страницы, который показывает, как выбор пользователя воздействуют на внешний вид напечатанного вывода информации. Когда вы вызываете функцию PageSetupDlg, вы можете предоставить фильтр - процедуру PagePaintHook, чтобы настроить внешний вид макета страницы. Всякий раз, когда блок диалога собирается рисовать содержимое макета страницы, диалоговое окно передает фильтр - процедуре последовательность сообщений WM_PSD*.

Смотри также
PagePaintHook, PageSetupDlg, RECT, WM_PSD_PAGESETUPDLG

Размещение и совместимость WM_PSD_FULLPAGERECT

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется


Сообщение WM_PSD_GREEKTEXTRECT

Сообщение WM_PSD_GREEKTEXTRECT уведомляет фильтр - процедуру диалогового окна Параметры страницы (Page Setup), что блок диалога собирается вывести внутри прямоугольника поля макета страницы греческий текст.

Синтаксис

WM_PSD_GREEKTEXTRECT
hDC = (WPARAM) (HDC) wParam; // дескриптор контекста устройства
lprcGreekText = (LPARAM) (LPRECT) lParam; // прямоугольник греческого текста

Параметры
hDC
Значение wParam. Идентифицирует контекст устройства для макета страницы.
lprcMargin
Значение lParam. Указатель на структуру RECT, которая содержит координаты, в пикселях, прямоугольника греческого текста.

Возвращаемые значения
Если фильтр - процедура возвращает значение ИСТИНА (TRUE), диалоговое окно не выводит блок греческого текста в макет страницы.
Если фильтр - процедура возвращает ЛОЖЬ(FALSE), блок диалога выводит блок греческого текста в макет страницы.

Замечания
Диалоговое окно Параметры страницы (Page Setup) включает в себя изображение макета страницы, который показывает, как выбор пользователя воздействуют на внешний вид напечатанного вывода информации. Когда вы вызываете функцию PageSetupDlg, то можете предоставить фильтр - процедуру PagePaintHook, чтобы настроить внешний вид макета страницы. Всякий раз, когда блок диалога собирается рисовать содержимое макета страницы, диалоговое окно передает фильтр - процедуре последовательность сообщений WM_PSD*.

Смотри также
PagePaintHook, PageSetupDlg, RECT, WM_PSD_PAGESETUPDLG

Размещение и совместимость WM_PSD_GREEKTEXTRECT

Windows NT				Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется


Сообщение WM_PSD_MARGINRECT

Сообщение WM_PSD_MARGINRECT уведомляет фильтр - процедуру диалогового окна Параметры страницы (Page Setup), что блок диалога собирается рисовать прямоугольник поля макета страницы.

Синтаксис

WM_PSD_MARGINRECT
hDC = (WPARAM) (HDC) wParam; // дескриптор контекста устройства
lprcMargin = (LPARAM) (LPRECT) lParam; // прямоугольник поля

Параметры
hDC
Значение wParam. Идентифицирует контекст устройства для макета страницы.
lprcMargin
Значение lParam. Указатель на структуру RECT, которая содержит координаты, в пикселях, прямоугольника поля.

Возвращаемые значения
Если фильтр - процедура возвращает значение ИСТИНА (TRUE), диалоговое окно не чертит прямоугольник поля в макете страницы.
Если фильтр - процедура возвращает значение ЛОЖЬ(FALSE), блок диалога чертит прямоугольник поля в макете страницы.

Замечания
Диалоговое окно Параметры страницы (Page Setup) включает в себя изображение макета страницы, который показывает, как выбор пользователя воздействует на внешний вид напечатанного вывода информации. Когда вы вызываете функцию PageSetupDlg, то можете предоставить фильтр - процедуру PagePaintHook, чтобы настроить внешний вид макета страницы. Всякий раз, когда блок диалога собирается чертить содержимое макета страницы, диалоговое окно передает фильтр - процедуре последовательность сообщений WM_PSD*.

Смотри также
PagePaintHook, PageSetupDlg, RECT, WM_PSD_PAGESETUPDLG

Размещение и совместимость WM_PSD_MARGINRECT

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется


Сообщение WM_PSD_MINMARGINRECT

Сообщение WM_PSD_MINMARGINRECT ставит в известность фильтр - процедуру PagePaintHook о координатах прямоугольника поля в макете страницы. Диалоговое окно Параметры страницы (Page Setup) передает это сообщение, когда оно собирается рисовать содержимое макета страницы.

Синтаксис

WM_PSD_MINMARGINRECT
hDC = (WPARAM) (HDC) wParam; // дескриптор контекста устройства
lprcMinMargin = (LPARAM) (LPRECT) lParam; // минимальный прямоугольник поля

Параметры
hDC
Значение wParam. Идентифицирует контекст устройства для макета страницы.
lprcMinMargin
Значение lParam. Указатель на структуру RECT, которая содержит координаты, в пикселях, минимального прямоугольника поля.

Возвращаемые значения
Если фильтр - процедура возвращает значение ИСТИНА (TRUE), диалоговое окно больше не передает сообщения WM_PSD* и не рисует в макете страницы до тех пор, пока в следующий раз у системы не появится необходимость перерисовать макет страницы.
Если фильтр - процедура возвращает значение ЛОЖЬ(FALSE), блок диалога передает остающиеся сообщения в порядке следования прорисовки.

Замечания
Диалоговое окно Параметры страницы (Page Setup) включает в себя изображение макета страницы, который показывает, как выбор пользователя воздействует на внешний вид напечатанного вывода информации. Когда вы вызываете функцию PageSetupDlg, то можете предоставить фильтр - процедуру PagePaintHook, чтобы настроить внешний вид макета страницы. Всякий раз, когда блок диалога собирается рисовать содержимое макета страницы, диалоговое окно передает фильтр - процедуре последовательность сообщений WM_PSD*

Смотри также
PagePaintHook, PageSetupDlg, RECT, WM_PSD_PAGESETUPDLG

Размещение и совместимость WM_PSD_MINMARGINRECT

Windows NT				Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется

 

Сообщение WM_PSD_PAGESETUPDLG

Сообщение WM_PSD_PAGESETUPDLG уведомляет фильтр - процедуру PagePaintHook, что диалоговое окно Параметры страницы (Page Setup) собирается рисовать содержимое макета страницы. Фильтр - процедура может использовать это сообщение, чтобы завершить задачи инициализации, связанные с прорисовкой содержания макета страницы.

Синтаксис

WM_PSD_PAGESETUPDLG
wPaper = LOWORD(wParam); // флажок размера бумаги
wFlags = HIWORD(wParam); // флажок ориентации бумаги
lppsd = (LPPAGESETUPDLG) lParam; // информация о диалоговом окне

Параметры
wPaper
Значение младшего слова wParam. Определяет значение, которое указывает размер бумаги. Это значение может быть одно из значений DMPAPER_, перечисленных в описании структуры DEVMODE.
wFlags
Значение старшего слова wParam. Указывает ориентацию бумаги или конверта, и какое из двух устройств: либо точечный матричный принтер, либо HPPCL (Язык управления принтеров Hewlett Packard). Этот параметр может быть одним из следующих значений:

  • 0x0001 - Бумага в альбомной форме (точечный матричный)
  • 0x0003 - Бумага в альбомной форме (HPPCL)
  • 0x0005 - Бумага в портретной форме (точечный матричный)
  • 0x0007 - Бумага в портретной форме (HPPCL)
  • 0x000b - Конверт в альбомной форме (HPPCL)
  • 0x000d - Конверт в портретной форме(точечный матричный)
  • 0x0019 - Конверт в альбомной форме (точечный матричный)
  • 0x001f - Конверт в портретной форме (HPPCL)

lppsd
Значение lParam. Указывает на структуру PAGESETUPDLG, которая содержит информацию, используемую, чтобы инициализировать диалоговое окно Параметры страницы (Page Setup).

Возвращаемые значения
Если фильтр - процедура возвращает значение ИСТИНА (TRUE), диалоговое окно больше не передает сообщения WM_PSD* и не рисует в макете страницы до тех пор, пока в следующий раз системе не потребуется перерисовать макет страницы.
Если фильтр - процедура возвращает значение ЛОЖЬ(FALSE), блок диалога передает остающиеся сообщения в порядке следования прорисовки.

Замечания
Диалоговое окно Параметры страницы (Page Setup) включает в себя изображение макета страницы, который показывает, как выбор пользователя воздействует на внешний вид напечатанного вывода информации. Когда вы вызываете функцию PageSetupDlg, то можете предоставить фильтр - процедуру PagePaintHook, чтобы настроить внешний вид макета страницы. Всякий раз, когда блок диалога собирается рисовать содержимое макета страницы, диалоговое окно передает фильтр - процедуре последовательность сообщений WM_PSD*.
Первые три сообщения в порядке следования прорисовки (WM_PSD_PAGESETUPDLG, WM_PSD_FULLPAGERECT или WM_PSD_MINMARGINRECT) предоставляют информацию о том, что фильтр - процедура может использоваться, чтобы рисовать содержание макета страницы. Остающиеся сообщения (WM_PSD_MARGINRECT, WM_PSD_GREEKTEXTRECT, WM_PSD_ENVSTAMPRECT, WM_PSD_YAFULLPAGERECT) уведомляют фильтр - процедуру, что диалоговое окно собирается рисовать конкретную часть макета страницы. Это позволяет фильтр - процедуре выборочно рисовать узлы макета страницы.

Смотри также
DEVMODE, PagePaintHook, PageSetupDlg, PAGESETUPDLG, WM_PSD_ENVSTAMPRECT, WM_PSD_FULLPAGERECT, WM_PSD_GREEKTEXTRECT, WM_PSD_MARGINRECT, WM_PSD_MINMARGINRECT, WM_PSD_YAFULLPAGERECT

Размещение и совместимость WM_PSD_PAGESETUPDLG

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется


Сообщение WM_PSD_YAFULLPAGERECT

Сообщение WM_PSD_YAFULLPAGERECT уведомляет фильтр - процедуру диалогового окна Параметры страницы (Page Setup), что блок диалога собирается рисовать узел адреса возврата в макете страницы конверта.

Синтаксис

WM_PSD_YAFULLPAGERECT
hDC = (WPARAM) (HDC) wParam; // дескриптор контекста устройства
lprcYaFullPage = (LPARAM) (LPRECT) lParam; // размеры прямоугольника страницы

Параметры
hDC
Значение wParam. Дескриптор контекста устройства для макета страницы.
lprcPage
Значение lParam. Указатель на структуру RECT, которая содержит координаты, в пикселях, макета страницы.

Возвращаемые значения
Если фильтр - процедура возвращает значение ИСТИНА (TRUE), диалоговое окно не рисует узел адреса возврата в макете страницы конверта.
Если фильтр - процедура возвращает значение ЛОЖЬ(FALSE), блок диалога рисует узел адреса возврата в макете страницы конверта.
Если тип бумаги не конверт, величина возвращаемого значения не имеет никакого влияния.

Замечания
Диалоговое окно Параметры страницы (Page Setup) включает в себя изображение макета страницы, который показывает, как выбор пользователя воздействуют на внешний вид напечатанного вывода информации. Когда вы вызываете функцию PageSetupDlg, вы можете предоставить фильтр - процедуру PagePaintHook, чтобы настроить внешний вид макета страницы. Всякий раз, когда диалоговое окно собирается рисовать содержимое макета страницы, блок диалога передает фильтр - процедуре последовательность сообщений WM_PSD*.

Смотри также
PagePaintHook, PageSetupDlg, RECT, WM_PSD_PAGESETUPDLG

Размещение и совместимость WM_PSD_YAFULLPAGERECT

Windows NT			Да 
Win95 Да
Win32s Да
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode Нет
Замечания по платформе Не имеется

 

Сообщение CDM_GETFILEPATH

Сообщение CDM_GETFILEPATH извлекает данные о пути и имени выбранного файла в стандартном диалоговом окне Открыть (Open) или Сохранить как (Save As) в стиле Проводника. Блок диалога должен быть создан с флажком OFN_EXPLORER; иначе, сообщение завершается с ошибкой.

Синтаксис

CDM_GETFILEPATH
wParam = (WPARAM) cbmax;
lParam = (LPARAM) (LPTSTR) psz;
// Соответствующая макрокоманда
int CommDlg_OpenSave_GetFilePath(hdlg, psz, cbmax);

Параметры
hdlg
Дескриптор стандартного диалогового окна, которое примет сообщение.
psz
Указатель на буфер, который принимает имя файла и путь к нему.
cbmax
Размер, в байтах (для версии ANSI) или в символах (для версии Уникода), буфера psz.

Возвращаемые значения
Если сообщение завершается успешно, величина возвращаемого значения - размер, в байтах или символах, строки имени файла и пути, включая символ завершения строки (ноль-терминатор). Это является или числом байтов или символов, скопированных в буфер psz, или требующийся размер буфера, если буфер слишком маленький.
Если происходит ошибка, величина возвращаемого значения - меньше чем нуль.

Смотри также
GetOpenFileName, GetSaveFileName, OPENFILENAME

Размещение и совместимость CDM_GETFILEPATH

Windows NT			Да 
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется


Сообщение CDM_GETFOLDERIDLIST

Сообщение CDM_GETFOLDERIDLIST извлекает адрес списка идентификаторов элементов соответствующей папки, которую в настоящее время открыло стандартное диалоговое окно Открыть (Open) или Сохранить как (Save As) в стиле Проводника. Блок диалога должен быть создан с флажком OFN_EXPLORER; иначе, сообщение завершается с ошибкой.

Синтаксис

CDM_GETFOLDERIDLIST
wParam = (WPARAM) cbmax;
lParam = (LPARAM) (LPVOID) pidl;
// Соответствующая макрокоманда
int CommDlg_OpenSave_GetFolderIDList(hdlg, pidl, cbmax);

Параметры
hdlg
Дескриптор стандартного диалогового окна, которое примет сообщение.
pidl
Указатель на буфер, который принимает список идентификаторов элементов.
cbmax
Размер буфера pidl, в байтах.

Возвращаемые значения
Если сообщение завершается успешно, величина возвращаемого значения - размер, в байтах, списка идентификаторов элементов. Эта величина является или числом байтов, скопированных в буфер pidl, или требующийся размер буфера, если буфер слишком маленький.
Если происходит ошибка, величина возвращаемого значения - меньше чем нуль.

Смотри также
GetOpenFileName, GetSaveFileName,OPENFILENAME

Размещение и совместимость CDM_GETFOLDERIDLIST

Windows NT				Да 
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode Нет
Замечания по платформе Не имеется


Сообщение CDM_GETFOLDERPATH

Сообщение CDM_GETFOLDERPATH извлекает данные о пути текущей открытой папки или каталога стандартным диалоговым окном Открыть (Open) или Сохранить как (Save As) в стиле Проводника. Блок диалога должен быть создан с флажком OFN_EXPLORER; иначе, сообщение завершается ошибкой.

Синтаксис

CDM_GETFOLDERPATH
wParam = (WPARAM) cbmax;
lParam = (LPARAM) (LPTSTR) psz;
// Соответствующая макрокоманда
int CommDlg_OpenSave_GetFolderPath(hdlg, psz, cbmax);

Параметры
hdlg
Дескриптор стандартного диалогового окна, которое примет сообщение.
psz
Указатель на буфер, который принимает путь.
cbmax
Размер, в байтах (для версии ANSI) или в символах (для версии Уникода), буфера psz.

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

Смотри также
GetOpenFileName, GetSaveFileName, OPENFILENAME

Размещение и совместимость CDM_GETFOLDERPATH

Windows NT			Да 
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется


Сообщения CDM_GETSPEC

Сообщение CDM_GETSPEC извлекает имя (не, включая путь) текущего выбранного файла в диалоговом окне Открыть (Open) или Сохранить как (Save As) в стиле Проводника. Блок диалога, должен быть создан с флажком OFN_EXPLORER; иначе, сообщение завершается ошибкой.

Синтаксис

CDM_GETSPEC
wParam = (WPARAM) cbmax;
lParam = (LPARAM) (LPTSTR) psz;
// Соответствующая макрокоманда
int CommDlg_OpenSave_GetSpec(hdlg, psz, cbmax);

Параметры
hdlg
Дескриптор стандартного диалогового окна, которое примет сообщение.
psz
Адрес буфера, который примет имя файла.
cbmax
Размер, в байтах (для версии ANSI) или в символах (для версии Уникода), буфера psz.

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

Смотри также
GetOpenFileName, GetSaveFileName, OPENFILENAME

Размещение и совместимость CDM_GETSPEC

Windows NT			Да 
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode WinNT
Замечания по платформе Не имеется

 

Сообщение CDM_HIDECONTROL

Сообщение CDM_HIDECONTROL скрывает заданный элемент управления стандартного диалогового окна Открыть (Open) или Сохранить как (Save As) в стиле Проводника. Блок диалога должен быть создан с флажком OFN_EXPLORER; иначе, сообщение завершается ошибкой.

Синтаксис

CDM_HIDECONTROL
wParam = (WPARAM) id;
lParam = 0;
// Соответствующая макрокоманда
void CommDlg_OpenSave_HideControl(hdlg, id);

Параметры
hdlg
Дескриптор стандартного диалогового окна, которое примет сообщение.
id
Идентификатор элемента управления, который скрывается.

Возвращаемые значения
Возвращаемого значения нет.

Смотри также
GetOpenFileName, GetSaveFileName, OPENFILENAME

Размещение и совместимость CDM_HIDECONTROL

Windows NT			Да 
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode Нет
Замечания по платформе Не имеется


Сообщение CDM_SETCONTROLTEXT

Сообщение CDM_SETCONTROLTEXT устанавливает текст для заданного элемента управления в стандартном диалоговом окне Открыть (Open) или Сохранить как (Save As) в стиле Проводника. Блок диалога, должен быть создан с флажком OFN_EXPLORER; иначе, сообщение завершается с ошибкой.

Синтаксис

CDM_SETCONTROLTEXT
wParam = (WPARAM) id;
lParam = (LPARAM) (LPSTR) text;
// Соответствующая макрокоманда
void CommDlg_OpenSave_SetControlText(hdlg, id, text)

Параметры
hdlg
Дескриптор стандартного диалогового окна, которое примет сообщение.
id
Идентификатор элемента управления, для которого устанавливается текст.
text
Указатель на строку с символом нуля в конце, определяющую новый текст для элемента управления.

Возвращаемые значения
Возвращаемого значения нет.

Смотри также
GetOpenFileName, GetSaveFileName, OPENFILENAME

Размещение и совместимость CDM_SETCONTROLTEXT

Windows NT			Да 
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode Нет
Замечания по платформе Не имеется

 

Сообщение CDM_SETDEFEXT

Сообщение CDM_SETDEFEXT устанавливает заданное по умолчанию расширение имени файла в стандартном диалоговом окне Открыть (Open) или Сохранить как (Save As) в стиле Проводника. Блок диалога должно быть создан с флажком OFN_EXPLORER; иначе, сообщение завершается с ошибкой.

Синтаксис

CDM_SETDEFEXT
wParam = 0;
lParam = (LPARAM) (LPSTR) pszext;
// Соответствующая макрокоманда
void CommDlg_OpenSave_SetDefExt(hdlg, pszext)

Параметры
hdlg
Дескриптор стандартного диалогового окна, которое примет сообщение.
pszext
Указатель на новое расширение имени файлов. Не должен включать в себя точку (.).

Возвращаемые значения
Возвращаемого значения нет.

Смотри также
GetOpenFileName, GetSaveFileName, OPENFILENAME

Размещение и совместимость CDM_SETDEFEXT

Windows NT				Да 
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode Нет
Замечания по платформе Не имеется

Предупреждающие сообщения, которые стандартное диалоговое окно Открыть (Open) или Сохранить как (Save As) передает в фильтр-процедуру.

 

Сообщение CDN_FILEOK

[Теперь поддерживается в Windows NT]

Уведомительное сообщение CDN_FILEOK передается стандартным диалоговым окном Открыть (Open) или Сохранить как (Save As) в стиле Проводника, когда пользователь определяет имя файла и щелкает мышью по кнопке OK. Ваша фильтр - процедура OFNHookProc принимает это сообщение в форме сообщения WM_NOTIFY.

Синтаксис

CDN_FILEOK
lpon = (LPOFNOTIFY) lParam;

Параметры
lpon
Указатель на структуру OFNOTIFY.
Структура OFNOTIFY содержит структуру NMHDR, элемент code которой указывает код уведомления CDN_FILEOK.
Структура OFNOTIFY содержит также указатель на структуру OPENFILENAME, чей элемент lpstrFile которой определяет адрес выбранного имени файла.

Возвращаемые значения
Если фильтр - процедура возвращает значение нуль, диалоговое окно принимает заданное имя файла и закрывается.
Чтобы отклонить заданное имя файла и вынудить блок диалога оставаться открытым, от фильтр - процедуры возвращают значение отличное от нуля и вызывают функцию SetWindowLong, чтобы установить не нулевое значение для DWL_MSGRESULT.

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

Смотри также
GetOpenFileName, GetSaveFileName, NMHDR, OFNHookProc, OFNOTIFY, OPENFILENAME, SetWindowLong, WM_NOTIFY

Размещение и совместимость CDN_FILEOK

Windows NT			Да 
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode Нет
Замечания по платформе Не имеется


 

Сообщение CDN_FOLDERCHANGE

[Теперь поддерживается в Windows NT]

Уведомительное сообщение CDN_FOLDERCHANGE передается стандартным диалоговым окном Открыть (Open) или Сохранить как (Save As) в стиле Проводника, когда открывается новая папка. Ваша фильтр - процедура OFNHookProc принимает это сообщение в форме сообщения WM_NOTIFY.

Синтаксис

CDN_FOLDERCHANGE
lpon = (LPOFNOTIFY) lParam;

Параметры
lpon
Указатель на структуру OFNOTIFY.
Структура OFNOTIFY содержит структуру NMHDR, элемент code которой указывает код уведомления CDN_FOLDERCHANGE.

Возвращаемые значения
Возвращаемое значение игнорируется.

Замечания
Система передает это уведомление только тогда, если диалоговое окно было создано с использованием значения OFN_EXPLORER.
Чтобы получить путь недавно открытой папки, фильтр - процедура может передать блоку диалога сообщение CDM_GETFOLDERPATH.

Смотри также
CDM_GETFOLDERPATH, GetOpenFileName, GetSaveFileName, NMHDR, OFNHookProc, OFNOTIFY, WM_NOTIFY

Размещение и совместимость CDN_FOLDERCHANGE

Windows NT			Да 
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode Нет
Замечания по платформе Не имеется


Сообщение CDN_HELP

[Теперь поддерживается в Windows NT]

Уведомительное сообщение CDN_HELP передается стандартным диалоговым окном Открыть (Open) или Сохранить как (Save As) в стиле Проводника, когда пользователь щелкает мышью по кнопке Справка (Help). Ваша фильтр - процедура OFNHookProc принимает это сообщение в форме сообщения WM_NOTIFY.

Синтаксис

CDN_HELP
lpon = (LPOFNOTIFY) lParam;

Параметры
lpon
Указатель на структуру OFNOTIFY.
Структура OFNOTIFY содержит структуру NMHDR, элемента code которой указывает код уведомления CDN_HELP.

Возвращаемые значения
Возвращаемое значение игнорируется.

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

Смотри также
GetOpenFileName, GetSaveFileName, NMHDR, OFNHookProc, OFNOTIFY, OPENFILENAME, WM_NOTIFY

Размещение и совместимость CDN_HELP

Windows NT			Да 
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode Нет
Замечания по платформе Не имеется

 

Сообщение CDN_INITDONE

[Теперь поддерживается в Windows NT]

Уведомительное сообщение CDN_INITDONE передается стандартным диалоговым окном Открыть (Open) или Сохранить как (Save As) в стиле Проводника, когда система закончила упорядочивать элементы управления в блоке диалога. Система перемещает стандартные элементы управления, чтобы создать место для элементов управления дочернего диалогового окна. Ваша фильтр - процедура OFNHookProc принимает это сообщение в форме сообщения WM_NOTIFY.

Синтаксис

CDN_INITDONE
lpon = (LPOFNOTIFY) lParam;

Параметры
lpon
Указатель на структуру OFNOTIFY.
Структура OFNOTIFY содержит структуру NMHDR, элемент code которой указывает код уведомления CDN_INITDONE.

Возвращаемые значения
Возвращаемое значение игнорируется.

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

Смотри также
GetOpenFileName, GetSaveFileName, NMHDR, OFNHookProc, OFNOTIFY, OPENFILENAME, WM_NOTIFY

Размещение и совместимость CDN_INITDONE

Windows NT			Да 
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode Нет
Замечания по платформе Не имеется


Сообщение CDN_SELCHANGE

[Теперь поддерживается в Windows NT]

Уведомительное сообщение CDN_SELCHANGE передается стандартным диалоговым окном Открыть (Open) или Сохранить как (Save As) в стиле Проводника, когда выбор в окне списка, которое отображает содержание текущей открытой папки или каталога, изменяется. Ваша фильтр - процедура OFNHookProc принимает это сообщение в форме сообщения WM_NOTIFY.

Синтаксис

CDN_SELCHANGE
lpon = (LPOFNOTIFY) lParam;

Параметры
lpon
Указатель на структуру OFNOTIFY.
Структура OFNOTIFY содержит структуру NMHDR, элемент code которой указывает код уведомления CDN_SELCHANGE.

Возвращаемые значения
Возвращаемое значение игнорируется.

Замечания
Система передает это уведомление только тогда, если диалоговое окно было создано с использованием значения OFN_EXPLORER.
Чтобы получить имя недавно выбранного файла или папки, фильтр - процедура может передать стандартному диалоговому окну сообщение CDM_GETFILEPATH или CDM_GETSPEC.

Смотри также
CDM_GETFILEPATH, CDM_GETSPEC, GetOpenFileName, GetSaveFileName, NMHDR, OFNHookProc, OFNOTIFY, WM_NOTIFY

Размещение и совместимость CDN_SELCHANGE

Windows NT			Да 
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode Нет
Замечания по платформе Не имеется

 

Сообщение CDN_SHAREVIOLATION

[Теперь поддерживается в Windows NT]

Уведомительное сообщение CDN_SHAREVIOLATION передается стандартным диалоговым окном Открыть (Open) или Сохранить как (Save As) в стиле Проводника, когда пользователь щелкает мышью по кнопке OK и происходит сетевая ошибка совместного доступа для выбранного файла. Ваша фильтр - процедура OFNHookProc принимает это сообщение в форме сообщения WM_NOTIFY.

Синтаксис

CDN_SHAREVIOLATION
lpon = (LPOFNOTIFY) lParam;

Параметры
lpon
Указатель на структуру OFNOTIFY. Элемент pszFile этой структуры указывает на имя файла, который имел ошибку совместного доступа.
Структура OFNOTIFY содержит структуру NMHDR, элемент code которой указывает код уведомления CDN_SHAREVIOLATION.

Возвращаемые значения
Величина возвращаемого значения указывает, как диалоговое окно должно обработать ошибку совместного доступа.
Если фильтр - процедура возвращает значение нуль, блок диалога отображает стандартное предупреждающее сообщение об ошибке совместного доступа.
Чтобы воспрепятствовать показу стандартного предупреждающего сообщения, возвратите от фильтр - процедуры не нулевое значение и вызовите функцию SetWindowLong, чтобы установить одно из следующих значений DWL_MSGRESULT:

  • OFN_SHAREFALLTHROUGH - Заставляет диалоговое окно возвратить имя файла без предупреждения пользователя об ошибке совместного доступа.
  • OFN_SHARENOWARN - Заставляет диалоговое окно отклонить имя файла без предупреждения пользователя об ошибке совместного доступа.

Замечания
Система передает это уведомление только тогда, если диалоговое окно было создано с использованием значения OFN_EXPLORER.
Система передает это уведомление только тогда, если значение OFN_SHAREAWARE не было определено, когда был создан блок диалога.

Смотри также
GetOpenFileName, GetSaveFileName, NMHDR, OFNHookProc, OFNOTIFY, OPENFILENAME, SetWindowLong, WM_NOTIFY

Размещение и совместимость CDN_SHAREVIOLATION

Windows NT			Да 
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode Нет
Замечания по платформе Не имеется


Сообщение CDN_TYPECHANGE

[Теперь поддерживается в Windows NT]

Уведомительное сообщение CDN_TYPECHANGE передается стандартным диалоговым окном Открыть (Open) или Сохранить как (Save As) в стиле Проводника, когда пользователь выбирает новый тип файла из типов файлов в комбинированном блоке. Ваша фильтр - процедура OFNHookProc принимает это сообщение в форме сообщения WM_NOTIFY.

Синтаксис

CDN_TYPECHANGE
lpon = (LPOFNOTIFY) lParam;

Параметры
lpon
Адрес структуры OFNOTIFY.
Структура OFNOTIFY содержит структуру NMHDR, элемент code которой указывает код уведомления CDN_TYPECHANGE.
Структура OFNOTIFY содержит также указатель на структуру OPENFILENAME, элемент nFilterIndex которой указывает однобазовый индекс недавно выбранного фильтра типа файла.

Возвращаемые значения
Возвращаемое значение игнорируется.

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

Смотри также
GetOpenFileName, GetSaveFileName, NMHDR, OFNHookProc, OFNOTIFY, OPENFILENAME, WM_NOTIFY

Размещение и совместимость CDN_TYPECHANGE

Windows NT				Да 
Win95 Да
Win32s Нет
Импортируемая библиотека -
Заголовочный файл commdlg.h
Unicode Нет
Замечания по платформе Не имеется