Окт 16

Функции чтения/записи текста для элементов управления

Win32 API содержит функции GetDlgltemText, SetDlgltemText и GetDlgltemlnt, которые используются для работы с текстовой информацией, ассоциированной с некоторым элементом управления.
Эти функции могут применяться не только к окну редактирования, но и к надписям, кнопкам, флажкам, переключателям и рамкам.
Функция GetDlgltemText имеет следующий прототип:
UINT GetDlgltemText(HWND hDlg. int Ctrl ID. LPTSTR IpString. int nMaxCount);
Она позволяет извлечь текст, ассоциированный с элементом управления, идентификатор которого передается в параметре ctrllD, и записать его в буфер с адресом IpString. Параметр nMaxCount задает максимальное количество символов, копируемых в буфер IpString. При успешном завершении функция возвращает число символов, прочитанных в буфер, без учета завершающего нуль-символа. При возникновении ошибки функция возвращает нулевое значение.
Функция SetDlgltemText, имеющая такие же параметры, осуществляет обратную операцию записи текстовой строки, на которую указывает IpString, в элемент управления ctrllD.
Функция GetDlgltemlnt с прототипом
UINT GetDlgltemlnttHWND hDlg. int ctrllD, BOOL IpTranslated, BOOL bSigned); предназначена для извлечения текстового изображения десятичного числа из элемента управления ctrllD и преобразования его к целочисленному значению. Если изображению числа предшествуют пробелы, то они отбрасываются. В процессе преобразования функция сканирует текстовую строку символ за символом и, если очередной символ оказывается не цифрой, то прекращает преобразование.
Параметру IpTranslated обычно передается адрес переменной типа B00L, в которую записывается значение, свидетельствующее об успешности завершения функции. Значение TRUE используется в случае успешного преобразования. Если вас эта информация не интересует, то можно передать данному параметру значение NULL
Если параметр bSigned равен TRUE, то функция будет учитывать наличие знака «минус» перед числом и возвращать значение типа int, несмотря на определение в прототипе функции возвращаемого типа UINT. Пробел между минусом и первой цифрой числа не допускается.
Функция GetDlgltemlnt возвращает нулевое значение, если транслируемое значение превышает INT_MAX (2147483647) для знакового числа или UINT_MAX (4294967295) для беззнакового числа.