Visual C++. Описание стандартных классов
Страница 31.


 
OnHScroll
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
Аргументы
"sectiontableheader"nSBCode - определяет код полосы прокрутки, содержащий запрос пользователя на прокрутку окна. Этот аргумент может принимать одно из следующих значений:
"sectiontableheader"SB_LEFT - перемещение в крайнюю левую позицию;
"sectiontableheader"SB_ENDSCROLL - завершение операции прокрутки;
"sectiontableheader"SB_LINELEFT - перемещение на строку позицию влево;
"sectiontableheader"SB_LINERIGHT - перемещение на строку позицию вправо;
"sectiontableheader"SB_PAGELEFT - перемещение на одну страницу влево;
"sectiontableheader"SB_PAGERIGHT - перемещение на одну страницу вправо;
"sectiontableheader"SB_RIGHT - перемещение в крайнюю правую позицию;
"sectiontableheader"SB_THUMBPOSITION - перемещение в указанную позицию. Эта позиция определяется аргументом nPos;
"sectiontableheader"SB_THUMBTRACK - перемещает бегунок в указанную позицию. Эта позиция определяется аргументом nPos.
"sectiontableheader"nPos - определяет положение бегунка полосы прокрутки, если аргумент nSBCode принимает значение SB_THUMBPOSITION или SB_THUMBTRACK. В противном случае данный аргумент не используется.
"sectiontableheader"В зависимости от значения диапазона прокрутки данный аргумент, имеющий тип целого числа без знака, может принимать отрицательное значение. Это следует понимать так: в действительности этот аргумент имеет тип целого числа со знаком и только при преобразовании его в этот формат функция будет работать абсолютно надежно, но в силу патологической любви разработчиков фирмы Microsoft к целым числам без знака этот аргумент объявлен как целое число без знака. Поэтому, если вы не уверены, что данная функция будет работать только с положительными границами диапазона, то лучше во всех случаях, перед использованием данного аргумента корректно преобразуйте его к родному типу целого со знаком. Самый большой идиотизм заключается в том, что для этого достаточно присвоить величину, имеющую тип целого числа без знака, величине, имеющей тип целого со знаком, что является нарушением всех правил преобразования типов данных.
"sectiontableheader"pScrollBar - если обрабатываемое данной функцией сообщение пришло от полосы прокрутки, данный аргумент содержит указатель на объект класса данного элемента управления. Если пользователь произвел щелчок кнопкой мыши в полосе прокрутки окна, этот параметр имеет значение NULL. Данный указатель может быть временным и не должен сохраняться для дальнейшего использования.
Описание
Данная функция вызывается приложением для обработки сообщений от полосы прокрутки. Аргументы функции OnHScroll соответствуют параметрам, передаваемым приложению в соответствующем сообщении. При вызове в данной функции метода базового класса, ему будут переданы те же параметры, что и данной функции. Все изменения, внесенные в них пользователем, будут при этом игнорироваться.
Функция OnHScroll используется для получения и передачи информации в горизонтальную полосу прокрутки окна. Приложение использует данную функцию для реализации обратной связи при перемещении бегунка полосы прокрутки. В этом случае первый аргумент данной функции принимает значение SB_THUMBTRACK.
При перемещении содержимого окна, включающего в себя данную полосу прокрутки, приложение должно установить ее бегунок в соответствующее положение. Для этого используется функция SetScrollPos.
OnNotify
virtual BOOL CWnd::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
Возвращаемое значение
Приложение возвращает ненулевое значение, если оно обработало данное сообщение, и нулевое значение в противном случае.
Аргументы
"sectiontableheader"wParam - определяет элемент управления, пославший данное сообщение. Если сообщение послано не элементом управления, имеет нулевое значение.
"sectiontableheader"lParam - указатель на объект структуры извещения (NMHDR), содержащую код извещения и дополнительную информацию. Если используется структура большего размера, ее первым элементом является объект структуры NMHDR.
"sectiontableheader"pResult - указатель на переменную типа LRESULT, в которую будет занесен код завершения обработки сообщения.
Описание
Приложение вызывает данную функцию при получении сообщения WM_NOTIFY, используемого для извещения родительского окна элемента управления о том, что в нем было вызвано событие или о том, что данному элементу управления необходимо передать некоторую информацию.
Перегруженная функция OnNotify не получает доступа к циклу обработки сообщений до тех пор, пока в ней не будет вызван метод базового класса.
OnPaint
afx_msg void OnPaint();
Описание
Приложение вызывает данную функцию, когда Windows или функции самого приложения посылают запрос на перерисовку части окна приложения. Сообщение WM_PAINT посылается функциями UpdateWindow и RedrawWindow.
Объект класса окна может получать, также, внутренние сообщения о необходимости перерисовки в результате вызова функции RedrawWindow с установленным флагом RDW_INTERNALPAINT. В этом случае окну может не передаваться обновляемый участок окна. Для его определения приложение должно вызвать функцию GetUpdateRect. Если данная функция возвращает нулевое значение, то приложение не должно вызывать функции BeginPaint и EndPaint.
Приложение должно само следить за необходимостью обновления рабочей области своего окна, используя внутренние структуры данных для хранения информации, необходимой для перерисовки окна после получения сообщения WM_PAINT, поскольку данное сообщение может быть вызвано как необходимостью перерисовки области окна после того, как она стала видимой, так и вызовом функции RedrawWindow с установленным флагом RDW_INTERNALPAINT.
Внутреннее сообщение WM_PAINT посылается Windows только один раз. После того, как внутреннее сообщение WM_PAINT будет послано окну функцией UpdateWindow, не могут быть посланы никакие другие сообщения WM_PAINT, пока окно не будет перерисовано или пока не будет вызвана функция RedrawWindow с установленным флагом RDW_INTERNALPAINT.
Отображение документов рассмотрено при описании функции CView::OnDraw.
PreCreateWindow
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
Возвращаемое значение
Ненулевое, если процесс создания окна должен быть продолжен, или ноль, если в процессе создания окна возникла ошибка.
Аргументы
"sectiontableheader"cs - объект структуры CREATESTRUCT.
Описание
Данная функция вызывается приложением перед созданием окна Windows, связанного с данным объектом класса CWnd. Эта функция никогда не должна вызываться непосредственно пользователем. По умолчанию данная функция проверяет, равняется ли нулю имя класса окна и, при положительном результате проверки, подставляет вместо него соответствующее имя по умолчанию. При перегрузке данной функции производится изменение значений, присвоенных переменным-членам структуры CREATESTRUCT для изменения режима открытия окна и его параметров. Каждый класс, производный от класса CWnd, вносит свои изменения в объект структуры CREATESTRUCT, которые нигде не документируются. Поэтому, прежде чем вносить свои изменения в элементы данной структуры в перегруженной версии функции PreCreateWindow, программисту необходимо сначала ознакомиться с исходным текстом данной функции базового класса и решить, какие изменения вам необходимо внести в установки по умолчанию и не будут ли они изменены функцией базового класса.
ReleaseDC
int ReleaseDC(CDC* pDC);
Возвращаемое значение
Ненулевое, в случае успешного завершения функции, и нулевое в противном случае.
Аргументы
"sectiontableheader"pDC - указатель на объект класса контекста устройства, который нужно освободить.
Описание
Освобождает контекст устройства, делая его доступным для использования другими приложениями. Результат выполнения функции ReleaseDC зависит от типа освобождаемого контекста устройства. Приложение должно вызвать функцию ReleaseDC после каждого вызова функции GetWindowDC и после каждого вызова функции GetDC.
ScreenToClient
void ScreenToClient(LPPOINT lpPoint) const; void ScreenToClient(LPRECT lpRect) const;
Аргументы
"sectiontableheader"lpPoint - указатель на объект класса CPoint или объект структуры POINT, содержащий экранные координаты, которые требуется преобразовать.
"sectiontableheader"lpRect - указатель на объект класса CRect или объект структуры RECT, содержащий экранные координаты, которые требуется преобразовать.
Описание
Преобразует экранные координаты указанной точки или прямоугольника в координаты рабочей области окна. Функция ScreenToClient замещает экранные координаты, содержащиеся в объектах lpPoint или lpRect соответствующими координатами рабочей области окна. Новые координаты отсчитываются от верхнего левого угла рабочей области окна, связанного с данным объектом класса CWnd.
SetDlgItemText
void SetDlgItemText(int nID, LPCTSTR lpszString);
Аргументы
"sectiontableheader"nID - идентификатор элемента управления, для которого необходимо задать текст.
"sectiontableheader"lpszString - указатель на объект класса CString или заканчивающуюся нулем строку символов, которую следует скопировать в элемент управления.
Описание
Устанавливает заголовок или текст в элементе управления, принадлежащем окну или диалоговому окну. Функция SetDlgItemText посылает сообщение WM_SETTEXT соответствующему элементу управления.
 
« Предыдущая статья   Следующая статья »