Access 2002

Длина строки


Эта функция: изменяет содержимое строки strReturnedStnng, записывая в нее заголовок окна, заданного параметром hWnd, завершаемый нуль-символом; бвозвращает количество байтов, помещенных в строку strReturnedStnng, не считая нуль-терминатора. (Имя переменной cb представляет собой аббревиа- туру от «count of bytes» — количество байтов.)

После вызова GetWi ndowText переменная strReturnedStnng выглядит так:

Длина строки не изменилась, и не была перераспределена память — строка по-прежнему состоит из 255 символов. Поскольку DLL не может сделать строку короче, перед использованием переменной strReturnedStnng вам нужно обрезать содержимое этой строки, отбросив ту часть, которая начинается с нуль-символа, записанного в нее функцией GetWi ndowText. Функция GetWi ndowText облегчает нам задачу, возвращая длину результирующей строки. Остается только передать эту длину функции Left$. Если в параметре hWnd передать функции GetWi ndowText несуществующий дескриптор окна, она вернет отрицательное значение, указывающее, что вызов был неудачным.

Если вам придется работать с DLL-функцией, которая не будет так же предупредительна и не сообщит вам, сколько символов она записала в строковый буфер, можно самостоятельно найти в нем нуль-символ — это и будет конец строки. Такую работу сделает функция Inst г.

Функция GetWindowText полезна даже несмотря на то, что ту же информацию можно прочитать из свойства формы Caption: ведь заголовок окна зависит еще и от того, в каком режиме открыта форма. Более того, GetWindowText работает с любым окном Windows, а не только с теми окнами, которые связаны с формами Access. Мы выбрали для нашего примера форму просто потому, что дескриптор ее окна проще всего получить. Однако вы можете узнать и дескрипторы любых других окон Windows, воспользовавшись, например, функцией Windows API FindWindowEx.

Комментарии закрыты