Поиск по сайту:


Смотри также:

Стандарты MPEG - Статья.

MSDN по русски. Глобальные функции Windows C++ .NET - Статья.

Аддитивные цветовые модели - Статья.

Компьютерная графика - Статья.

Все новинки...

Статья «MSDN по русски. Описание классов C++ .NET»

Поделиться:

1    2    3    4    5    6    7    8    9    10   

ProcessShellCommand

BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);

Возвращаемое значение
Ненулевое, если переданные данной функции команды были выполнены успешно, в противном случае функция InitInstance возвращает ноль.
Аргументы

rCmdInfo - ссылка на объект класса CCommandLineInfo.

Описание
Данная функция вызывается в функции InitInstance для обработки параметров командной строки, передаваемых ей в объекте структуры CCommandLineInfo. При создании с использованием мастера AppWizard нового приложения, использующего библиотеку MFC, мастер AppWizard создает в функции InitInstance локальный объект класса CCommandLineInfo, а затем вызывает функции ProcessShellCommand и ParseCommandLine. Обработка параметров командной строки производится следующим образом:


1. После своего создания в функции InitInstance объект класса CCommandLineInfo передается в качестве параметра функции ParseCommandLine.
2. Функция ParseCommandLine последовательно вызывает функцию CCommandLineInfo::ParseParam для каждого параметра командной строки.
3. Функция ParseParam присваивает значения переменным в объекте класса CCommandLineInfo, который затем передается в качестве аргумента функции ProcessShellCommand.
4. Функция ProcessShellCommand производит действия, указанные в параметрах командной строки.

Переменная CCommandLineInfo::m_nShellCommand представляет собой переменную перечислимого типа, определенную в классе CCommandLineInfo следующим образом:

enum{
  FileNew,
  FileOpen,
  FilePrint,
  FilePrintTo,
  FileDDE,
};

SetRegistryKey

void SetRegistryKey(LPCTSTR lpszRegistryKey);
void SetRegistryKey(UINT nIDRegistryKey);

Аргументы

lpszRegistryKey - указатель на строку, содержащую имя ключа.
nIDRegistryKey - идентификатор или индекс ключа в реестре.

Описание
Вызов данной функции позволяет сохранять параметры начальной установки вашего приложения в системном реестре, а не в файлах с расширением ini, как это имело место в старых версиях Windows. В ней устанавливается ключ m_pszRegistryKey, который может затем использоваться в функциях, членах класса CWinApp, таких, как GetProfileInt, GetProfileString, WriteProfileInt и WriteProfileString. Вызов данной функции приводит к сохранению в системном регистре списка недавно использованных файлов. В качестве ключа регистрации обычно выбирается название компании. В этом случае адрес конкретной переменной в системном реестре выглядит следующим образом HKEY_CURRENT_USER\Software\<название компании>\<имя приложения>\<имя секции>\<идентификатор переменной>.
WinHelp

virtual void WinHelp(DWORD dwData, UINT nCmd = HELP_CONTEXT);

Аргументы

dwData - определяет дополнительную информацию. Трактовка данного аргумента зависит от значения аргумента nCmd.
nCmd - определяет тип запрашиваемой справочной информации. Список возможных значений данного аргумента совпадает со списком возможных значений аргумента dwData глобальной функции WinHelp.

Описание
Данная функция вызывается для запуска приложения WinHelp. Приложение WinHelp автоматически закрывается при закрытии вызвавшего его приложения.
WriteProfileString

BOOL WriteProfileString(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue);

Возвращаемое значение
Ненулевое, если операция прошла успешно, и ноль в противном случае.
Аргументы

lpszSection - указатель на символьную строку, заканчивающуюся нулем, определяющее секцию, содержащую данную строку. Если данная секция не существует, то она создается. Имя секции не зависит от регистра используемых в ней символов, и она может представлять собой любую комбинацию заглавных и прописных букв.
lpszEntry - указатель на символьную строку, заканчивающуюся нулем, определяющую идентификатор строки в записи. Если данный идентификатор в секции не существует, то он создается.
lpszValue - указатель на строку, которую необходимо сохранить. Если этот параметр имеет значение NULL, то идентификатор, указанный в аргументе lpszEntry, удаляется из записи.

Описание
Данная функция вызывается для сохранения указанной строки в указанной секции реестра приложения или в файле с расширением .ini.
CWinThread
Объекты класса CWinThread представляют собой потоки, исполняющиеся в приложении. Основной поток приложения обычно представлен объектом класса, производного от класса CWinApp, который, в свою очередь, является производным от классаCWinThread. Дополнительные объекты класса CWinThread позволяют создавать несколько потоков в одном приложении.
Существуют две основные разновидности потоков: рабочие потоки и интерфейсные потоки. Рабочие потоки не содержат цикла обработки сообщений. Примером такого потока может служить выполнение фоновых вычислений в приложении, использующем рабочие листы. Интерфейсные потоки содержат цикл обработки сообщений и могут обрабатывать сообщения, поступающие от системы. Класс CWinApp и производные от него классы являются примером интерфейсных потоков. Другие классы интерфейсных потоков могут производиться непосредственно от класса CWinThread.
Объекты класса CWinThread обычно уничтожаются при завершении потоком своей работы. Для того чтобы эти объекты сохранялись после завершения потоком своей работы необходимо присвоить переменной m_bAutoDelete значения FALSE.
Вся информация, необходимая для взаимодействия потока с приложением содержится в соответствующем объекте класса CWinThread. Поэтому любой поток, использующий библиотеку MFC должен быть производным от данного класса. Например, поток, созданный функцией _beginthreadex, не может использоваться в приложениях, использующих библиотеку MFC.
Поток создается функцией AfxBeginThread. Эта функция имеет две версии, первая из которых создает рабочий поток, а вторая - интерфейсный поток. При создании рабочего потока первым аргументом функции AfxBeginThread является указатель на исполняющую функцию данного потока. При создании интерфейсного потока первым аргументом функции AfxBeginThread является указатель на объект структуры CRuntimeClass пользовательского класса, производного от класса CWinThread. В обеих версиях функций могут быть указаны дополнительные аргументы, определяющие приоритет потока, размер его стека и атрибуты безопасности. Функция AfxBeginThread возвращает указатель на созданный ею объект класса, производного от классаCWinThread.
Вместо вызова функции AfxBeginThread объект класса, производного от класса CWinThread, может быть создан своим конструктором, после чего для него должна быть вызвана функция CreateThread. Этот двухэтапный метод может использоваться для последовательного создания нескольких потоков с использованием одного объекта класса CWinThread.
Описание данного класса содержится в файле заголовка afxwin.h.
CreateThread

BOOL CreateThread(DWORD dwCreateFlags = 0, UINT nStackSize = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL);

Возвращаемое значение
Ненулевое, если создание потока завершилось успешно, и нулевое в противном случае.
Аргументы

dwCreateFlags - определяет дополнительный флаг, устанавливающий режим создания потока. Этот флаг может иметь два значения:
CREATE_SUSPENDED - при создании потока его счетчик остановки устанавливается в единицу. Чтобы запустить поток, необходимо вызвать функцию ResumeThread;
0 - поток запускается на исполнение немедленно после своего создания.
nStackSize - определяет размер стека нового потока в байтах. Если эта величина равно нулю, то у создаваемого потока создается стек того же размера, что и у вызывающего потока.
lpSecurityAttrs - указатель на объект структуры SECURITY_ATTRIBUTES, определяющий атрибуты безопасности данного потока. Если эта величина равна нулю, то создаваемый поток имеет те же атрибуты безопасности, что и вызывающий поток.

Описание
Создает поток в адресном пространстве вызывающего процесса. Чтобы создать объект класса потока и одновременно запустить его, используйте функцию AfxBeginThread. Функция CreateThread обычно применяется в том случае, когда один и тот же объект класса потока используется для последовательного создания нескольких потоков.
Run

virtual int Run();

Возвращаемое значение
Целочисленное значение, возвращаемое потоком. Это значение может быть получено с использованием функции ::GetExitCodeThread.
Описание
Содержит цикл обработки сообщений интерфейсного потока, используемый по умолчанию. Функция Run получает и распределяет сообщения Windows до тех пор, пока приложение не получит сообщение WM_QUIT. Если в настоящее время очередь сообщений потока пуста, то функция Run вызывает функцию OnIdle, осуществляющую фоновую обработку. Поступающие сообщения сначала обрабатываются функцией PreTranslateMessage, производящей их специальную обработку, а затем - функцией Windows ::TranslateMessage, обрабатывающей сообщения от клавиатуры. После этого вызывается функция Windows ::DispatchMessage. Функция Run очень редко перегружается для обеспечения нестандартного пользовательского интерфейса. Эта функция используется только в интерфейсных потоках.
SetThreadPriority

BOOL SetThreadPriority(int nPriority);

Возвращаемое значение
Ненулевое, если создание потока завершилось успешно, и нулевое в противном случае.
Аргументы

nPriority - определяет новое значение уровня приоритета в своем классе приоритета. Этот аргумент может принимать следующие значения, перечисленные в порядке убывания приоритета.
THREAD_PRIORITY_TIME_CRITICAL
THREAD_PRIORITY_HIGHEST
THREAD_PRIORITY_ABOVE_NORMAL
THREAD_PRIORITY_NORMAL
THREAD_PRIORITY_BELOW_NORMAL
THREAD_PRIORITY_LOWEST
THREAD_PRIORITY_IDLE
Дополнительная информация об уровнях приоритета потока содержится в описании функции ::SetThreadPriority.

Описание
Данная функция устанавливает уровень приоритета текущего потока в своем классе приоритета. Функция SetThreadPriority может вызываться только после успешного завершения работы функции CreateThread.
CWnd
Класс CWnd обеспечивает основные функциональные возможности всех классов окон в библиотеке MFC. Объект класса CWnd не является окном Windows, но тесно с ним связан. Если объект класса CWnd является полноценным объектом класса, создается своим конструктором и уничтожается своим деструктором, то окно Windows является внутренней структурой данных Windows, создаваемой функцией CWnd::Create и уничтожаемой виртуальным деструктором класса CWnd. ФункцияCWnd::DestroyWindow уничтожает окно Windows, не уничтожая объект класса CWnd.
Класс CWnd и механизм карты сообщения скрывают от пользователя функцию WndProc. Поступающие в объект данного класса сообщения Windows автоматически направлены через карту сообщения к соответствующим функциям обработки сообщений класса CWnd. Чтобы обработать в пользовательском классе сообщение, поступающее от некоторого элемента управления, пользователю необходимо включить в свой класс функцию обработки данного сообщения.
Класс CWnd позволяет пользователю создать дочернее окно Windows для своего приложения. Для этого достаточно создать пользовательский класс, производный от класса CWnd, а затем добавить в него переменные для хранения данных, характерных для данного окна приложения. После этого необходимо включить в карту сообщений макросы для обработки приходящих в класс сообщений и написать тела функций обработки сообщений, объявленных в карте сообщений.
Дочернее окно создается в два этапа. Сначала вызывается конструктор класса CWnd, создающий объект данного класса, а затем вызывается функция Create, создающая дочернее окно и присоединяющая его к объекту класса CWnd.
Когда пользователь закрывает дочернее окно, происходит уничтожение объекта класса CWnd или вызывается функция DestroyWindow, уничтожающая окно и связанные с ним структуры данных.
В библиотеке MFC собрано множество классов, производных от CWnd. Многие из этих классов, включая CFrameWnd, CMDIFrameWnd, CMDIChildWnd, CView и CDialog, сами используются в качестве базовых классов для различных пользовательских классов.
Классы элементов управления, являющиеся производными от класса CWnd, такие, как класс CButton, могут использоваться непосредственно или могут использоваться в качестве базовых для пользовательских классов.
Описание данного класса содержится в файле заголовка afxwin.h.
BeginPaint

CDC* BeginPaint(LPPAINTSTRUCT lpPaint);

Возвращаемое значение
Указатель на объект класса контекста устройства, связанного с данным объектом класса CWnd. Возвращаемый указатель на объект класса контекста устройства может быть временным и не должен уничтожаться до вызова функции EndPaint.
Аргументы

lpPaint - указатель на объект структуры PAINTSTRUCT, в которую будет записана информация, необходимая для вывода на экран.

Описание
Данная функция подготавливает объект класса CWnd к выводу графической информации и соответствующим образом заполняет объект структуры PAINTSTRUCT. Объект структуры PAINTSTRUCT содержит объект структуры RECT, в котором содержатся координаты минимального по размерам прямоугольника, полностью включающего в себя область обновления окна, и флаг, определяющий необходимость уничтожения фона в процессе обновления окна. Область обновления окна устанавливается функциями Invalidate, InvalidateRect или InvalidateRgn или операционной системой при изменении ею размеров окна, его перемещении, осуществлении прокрутки в окне или при проведении ею других операций, приводящих к необходимости обновления рабочей области окна. Если область обновления окна имеет флаг, указывающий на необходимость стирания отображаемой в ней информации, функция BeginPaint посылает сообщение WM_ONERASEBKGND. Функция BeginPaint может вызываться только при обработке сообщения WM_PAINT. Каждому вызову функции BeginPaint должен соответствовать вызов функции EndPaint. Если в области обновления окна располагается текстовый курсор, функция BeginPaint автоматически его скрывает для того, чтобы он не был уничтожен.
DefWindowProc

virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);

Возвращаемое значение
Зависит от посланного сообщения.
Аргументы

message - определяет обрабатываемое сообщение Windows.
wParam - содержит дополнительную информацию, определяемую сообщением.
lParam - содержит дополнительную информацию, определяемую сообщением.

Описание
Вызывает процедуру окна, используемую по умолчанию. Эта процедура стандартным образом обрабатывает оконные сообщения, не обработанные приложением. Использование этой функции гарантирует, что все сообщения будут обработаны. При ее вызове следует передавать те же аргументы, что были получены функцией обработки сообщения, в которой она вызывается.
DoDataExchange

virtual void DoDataExchange(CDataExchange* pDX);

Аргументы

pDX - указатель на объект класса CDataExchange.

Описание
Данная функция вызывается приложением для обмена данными и проверки корректности данных передаваемых между объектами классов диалогового окна и включенных в него объектов классов элементов управления. Эта функция не должна вызываться непосредственно. Ее вызов допустим только через вызов функции UpdateData, вызываемой для инициализации переменных в объектах классов элементов управления и для передачи значений этих переменных обратно в класс диалогового окна. При создании пользовательского класса, производного от класса CDialog, для того, чтобы иметь возможность воспользоваться методами автоматического обмена данными между объектами классов диалогового окна и элементов управления, а также автоматической проверки передаваемых при этом данных, пользователь должен перегрузить функцию DoDataExchange в своем диалоговом классе. Эту работу выполняет за него среда программирования Visual Studio.NET, включающая в эту функцию карту обмена данными данного диалогового окна и вызовы глобальных функций проверки допустимости значений передаваемых данных. Заполнение карты обмена данными происходит в процессе включения в класс диалогового окна переменных, связанных с элементами управления, с использованием соответствующих мастеров, вызываемых из окна Class View (Просмотр классов). Описание перегруженной функции DoDataExchange должно предшествовать описаниям макросов в файле реализации.
EndPaint

void EndPaint(LPPAINTSTRUCT lpPaint);

Аргументы

lpPaint - указатель на объект структуры PAINTSTRUCT, содержащий информацию, необходимую для вывода на экран и полученную в функции BeginPaint.

Описание
Отмечает конец процесса рисования в текущем окне. Функция EndPaint должна вызываться для каждого вызова функции BeginPaint после того, как инициированный данной функцией процесс рисования будет завершен. Если функция BeginPaintскрыла текстовый курсор, то функция EndPaint выведет его на экран.
GetClientRect

void GetClientRect(LPRECT lpRect) const;

Аргументы

lpRect - указатель на объект структуры RECT или объект класса CRect в который будут записаны координаты рабочей области окна. Переменные left и top в данном объекте структуры всегда имеют нулевое значение. В переменные right и bottomзаписывается ширина и высота рабочей области окна.

Описание
Копирует пользовательские координаты рабочей области окна, связанного с объектом класса CWnd, в структуру, на которую указывает аргумент lpRect. Пользовательские координаты определяют левый верхний и правый нижний углы рабочей области окна. Поскольку пользовательские координаты отсчитываются от верхнего левого угла рабочей области окна, связанного с объектом класса CWnd, координаты левого верхнего угла всегда (0,0)
GetDC

CDC* GetDC();

Возвращаемое значение
В случае успешного завершения работы функции возвращается указатель на объект класса контекста устройства, используемого в рабочей области окна, связанного с объектом класса CWnd. В противном случае возвращается нулевое значение. Возвращаемый указатель может быть временным и не должен сохраняться для дальнейшего использования.
Описание
Данная функция возвращает указатель на объект класса обычного, принадлежащего классу или частного контекста устройства в зависимости от стиля класса, определенного при создании объекта класса CWnd. Для обычных контекстов устройств функция GetDC использует атрибуты, установленные по умолчанию, при каждом их вызове. Для контекстов устройств, принадлежащих классу, или частных контекстов устройств функция GetDC оставляет без изменения установленные ранее атрибуты. Контекст устройства может использоваться в последовательности функций графического интерфейса пользователя (GDI), осуществляющих вывод в рабочую область окна. Если контекст устройства принадлежит классу окна, после его использования следует вызвать функцию ReleaseDC для освобождения контекста устройства. Поскольку в операционной системе одновременно может находиться не более пяти объектов класса обычного контекста устройств, отсутствие операции освобождения контекста устройства после его использования в данном приложении может привести к тому, что другие приложения не смогут получить доступ к контексту устройств. Функция GetDC возвращает контекст устройства, принадлежащий классу CWnd, в том случае, если при регистрации данного класса в структуре WNDCLASS были установлены флаги CS_CLASSDC, CS_OWNDC или CS_PARENTDC.
GetParentOwner

CWnd* GetParentOwner() const;

Возвращаемое значение
Указатель на объект класса CWnd. Если объект класса CWnd не имеет дескриптора, создается временный объект класса CWnd и ему сопоставляется дескриптор. Возвращаемый данной функцией указатель может быть временным и его не следует сохранять для дальнейшего использования.
Описание
Данная функция позволяет получить указатель на родительское окно данного дочернего окна или на владельца окна. Функция GetParentOwner возвращает указатель на ближайшее в иерархии родительское окно или на владельца окна, который сам не является дочерним окном (не имеет стиля WS_CHILD). Текущий владелец окна может быть установлен при вызове функции SetOwner. По умолчанию родительское окно любого окна одновременно является и его владельцем. В отличие от данной функции функция GetParent возвращает указатель на непосредственного родителя независимо от того, является ли он дочерним окном или нет. В том случае, если родительским окном для данного окна является дочернее окно другого окна, то функцииGetParent и GetParentOwner возвращают указатели на различные объекты класса CWnd.
GetSafeHwnd

HWND GetSafeHwnd() const;

Возвращаемое значение
Возвращает дескриптор текущего окна. Если объект класса CWnd не связан с окном, или в нем использован нулевой указатель на окно, возвращает нулевое значение.
Описание
Позволяет получить значение переменной m_hWnd. Если указатель this имеет нулевое значение, возвращает значение NULL.
GetStyle

DWORD GetStyle() const;

Возвращаемое значение
Стиль окна.
Описание
Возвращает текущий стиль окна.
GetWindowContextHelpId

DWORD GetWindowContextHelpId() const;

Возвращаемое значение
Если с данным объектом класса CWnd связан идентификатор контекстной справки, возвращает этот идентификатор. В противном случае возвращает нулевое значение.
Описание
Данная функция позволяет получить идентификатор контекстной справки, связанный с данным объектом класса CWnd.
Invalidate

void Invalidate(BOOL bErase = TRUE);

Аргументы

bErase - определяет необходимость уничтожения фона при перерисовке.

Описание
Вызывает перерисовку всей рабочей области окна, связанного с объектом класса CWnd. Рабочая область отмечается как нуждающаяся в перерисовке при поступлении следующего сообщения WM_PAINT. В рабочей области окна может быть отменена перерисовка, если до прихода следующего сообщения WM_PAINT будут вызваны функции ValidateRect или ValidateRgn. Аргумент bErase определяет необходимость уничтожения фона в процессе перерисовки рабочей области окна. Если данный аргумент принимает значение TRUE, то при вызове функции BeginPaint происходит уничтожение фона, в противном случае фон остается без изменений. Если аргумент bErase принимает значение TRUE для любой части перерисовываемой области, фон уничтожается во всей этой области. Окно посылает сообщение WM_PAINT в том случае, если в окне имеются области, нуждающиеся в перерисовке, и в очереди сообщений приложения отсутствуют другие сообщения для данного окна.
ModifyStyleEx

BOOL ModifyStyleEx(DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0);

Возвращаемое значение
Ненулевое, если произошло изменение стиля окна, в противном случае - ноль.
Аргументы

dwRemove - определяет дополнительные стили, которые необходимо удалить в процессе изменения стиля окна.
dwAdd - определяет дополнительные стили, которые необходимо добавить в процессе изменения стиля окна.
nFlags - флаги, передаваемые функции SetWindowPos, или ноль, если нет необходимости вызывать функцию SetWindowPos. По умолчанию данный аргумент имеет нулевое значение. В данном аргументе могут быть установлены следующие флаги:
SWP_NOSIZE - сохраняется прежний размер окна;
SWP_NOMOVE - сохраняется прежнее положение окна;
SWP_NOZORDER - сохраняется прежний Z порядок;
SWP_NOACTIVATE - окно не активизируется.

Описание
Данная функция вызывается для внесения изменений в дополнительные стили окна. Добавляемые и удаляемые стили объединяются с использованием оператора побитового ИЛИ. Для внесения изменений в обычные стили окна используется функцияModifyStyle.
OnContextMenu

afx_msg void OnContextMenu(CWnd* pWnd, CPoint pos);

Аргументы

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

Описание
Вызывается приложением при щелчке правой кнопки мыши в окне. Для обработки данного сообщения и вывода контекстного меню может использоваться функция TrackPopupMenu. Если пользователь не вывел контекстное меню, он должен передать это сообщение функции DefWindowProc. Если щелчок правой кнопкой мыши был произведен в дочернем окне, то функция DefWindowProc посылает сообщение родительскому окну. В противном случае, если щелчок правой кнопкой мыши был произведен в области заголовка окна, функция DefWindowProc выводит контекстное меню, определенное по умолчанию.
OnHelpInfo

afx_msg BOOL OnHelpInfo(HELPINFO* lpHelpInfo);

Аргументы

lpHelpInfo - указатель на объект структуры HELPINFO, содержащий информацию о команде меню, элементе управления, диалоговом окне или окне по которым запрошена справочная информация.

Описание
Вызывается приложением при нажатии пользователем клавиши . Если в момент нажатия клавиши фокус ввода принадлежит меню, то сообщение WM_HELP посылается окну, связанному с данным меню. В противном случае сообщение WM_HELPпосылается окну, имеющему на данный момент фокус ввода. Если ни одно окно не имеет фокуса ввода, сообщение WM_HELP посылается активному окну.
OnHScroll

afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);

Аргументы

nSBCode - определяет код полосы прокрутки, содержащий запрос пользователя на прокрутку окна. Этот аргумент может принимать одно из следующих значений:
SB_LEFT - перемещение в крайнюю левую позицию;
SB_ENDSCROLL - завершение операции прокрутки;
SB_LINELEFT - перемещение на строку позицию влево;
SB_LINERIGHT - перемещение на строку позицию вправо;
SB_PAGELEFT - перемещение на одну страницу влево;
SB_PAGERIGHT - перемещение на одну страницу вправо;
SB_RIGHT - перемещение в крайнюю правую позицию;
SB_THUMBPOSITION - перемещение в указанную позицию. Эта позиция определяется аргументом nPos;
SB_THUMBTRACK - перемещает бегунок в указанную позицию. Эта позиция определяется аргументом nPos.
nPos - определяет положение бегунка полосы прокрутки, если аргумент nSBCode принимает значение SB_THUMBPOSITION или SB_THUMBTRACK. В противном случае данный аргумент не используется.
В зависимости от значения диапазона прокрутки данный аргумент, имеющий тип целого числа без знака, может принимать отрицательное значение. Это следует понимать так: в действительности этот аргумент имеет тип целого числа со знаком и только при преобразовании его в этот формат функция будет работать абсолютно надежно, но в силу патологической любви разработчиков фирмы Microsoft к целым числам без знака этот аргумент объявлен как целое число без знака. Поэтому, если вы не уверены, что данная функция будет работать только с положительными границами диапазона, то лучше во всех случаях, перед использованием данного аргумента корректно преобразуйте его к родному типу целого со знаком. Самый большой идиотизм заключается в том, что для этого достаточно присвоить величину, имеющую тип целого числа без знака, величине, имеющей тип целого со знаком, что является нарушением всех правил преобразования типов данных.
pScrollBar - если обрабатываемое данной функцией сообщение пришло от полосы прокрутки, данный аргумент содержит указатель на объект класса данного элемента управления. Если пользователь произвел щелчок кнопкой мыши в полосе прокрутки окна, этот параметр имеет значение NULL. Данный указатель может быть временным и не должен сохраняться для дальнейшего использования.

Описание
Данная функция вызывается приложением для обработки сообщений от полосы прокрутки. Аргументы функции OnHScroll соответствуют параметрам, передаваемым приложению в соответствующем сообщении. При вызове в данной функции метода базового класса, ему будут переданы те же параметры, что и данной функции. Все изменения, внесенные в них пользователем, будут при этом игнорироваться.
Функция OnHScroll используется для получения и передачи информации в горизонтальную полосу прокрутки окна. Приложение использует данную функцию для реализации обратной связи при перемещении бегунка полосы прокрутки. В этом случае первый аргумент данной функции принимает значение SB_THUMBTRACK.
При перемещении содержимого окна, включающего в себя данную полосу прокрутки, приложение должно установить ее бегунок в соответствующее положение. Для этого используется функция SetScrollPos.
OnNotify

virtual BOOL CWnd::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);

Возвращаемое значение
Приложение возвращает ненулевое значение, если оно обработало данное сообщение, и нулевое значение в противном случае.
Аргументы

wParam - определяет элемент управления, пославший данное сообщение. Если сообщение послано не элементом управления, имеет нулевое значение.
lParam - указатель на объект структуры извещения (NMHDR), содержащую код извещения и дополнительную информацию. Если используется структура большего размера, ее первым элементом является объект структуры NMHDR.
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);

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

cs - объект структуры CREATESTRUCT.

Описание
Данная функция вызывается приложением перед созданием окна Windows, связанного с данным объектом класса CWnd. Эта функция никогда не должна вызываться непосредственно пользователем. По умолчанию данная функция проверяет, равняется ли нулю имя класса окна и, при положительном результате проверки, подставляет вместо него соответствующее имя по умолчанию. При перегрузке данной функции производится изменение значений, присвоенных переменным-членам структуры CREATESTRUCT для изменения режима открытия окна и его параметров. Каждый класс, производный от класса CWnd, вносит свои изменения в объект структуры CREATESTRUCT, которые нигде не документируются. Поэтому, прежде чем вносить свои изменения в элементы данной структуры в перегруженной версии функции PreCreateWindow, программисту необходимо сначала ознакомиться с исходным текстом данной функции базового класса и решить, какие изменения вам необходимо внести в установки по умолчанию и не будут ли они изменены функцией базового класса.
ReleaseDC

int ReleaseDC(CDC* pDC);

Возвращаемое значение
Ненулевое, в случае успешного завершения функции, и нулевое в противном случае.
Аргументы

pDC - указатель на объект класса контекста устройства, который нужно освободить.

Описание
Освобождает контекст устройства, делая его доступным для использования другими приложениями. Результат выполнения функции ReleaseDC зависит от типа освобождаемого контекста устройства. Приложение должно вызвать функцию ReleaseDCпосле каждого вызова функции GetWindowDC и после каждого вызова функции GetDC.
ScreenToClient

void ScreenToClient(LPPOINT lpPoint) const; void ScreenToClient(LPRECT lpRect) const;

Аргументы

lpPoint - указатель на объект класса CPoint или объект структуры POINT, содержащий экранные координаты, которые требуется преобразовать.
lpRect - указатель на объект класса CRect или объект структуры RECT, содержащий экранные координаты, которые требуется преобразовать.

Описание
Преобразует экранные координаты указанной точки или прямоугольника в координаты рабочей области окна. Функция ScreenToClient замещает экранные координаты, содержащиеся в объектах lpPoint или lpRect соответствующими координатами рабочей области окна. Новые координаты отсчитываются от верхнего левого угла рабочей области окна, связанного с данным объектом класса CWnd.
SetDlgItemText

void SetDlgItemText(int nID, LPCTSTR lpszString);

Аргументы

nID - идентификатор элемента управления, для которого необходимо задать текст.
lpszString - указатель на объект класса CString или заканчивающуюся нулем строку символов, которую следует скопировать в элемент управления.

Описание
Устанавливает заголовок или текст в элементе управления, принадлежащем окну или диалоговому окну. Функция SetDlgItemText посылает сообщение WM_SETTEXT соответствующему элементу управления.
SetWindowContextHelpId

BOOL SetWindowContextHelpId(DWORD dwContextHelpId);

Возвращаемое значение
Ненулевое, в случае успешного завершения работы, и нулевое в противном случае.
Аргументы

dwContextHelpId - идентификатор контекстной справки, связываемый с данным объектом класса CWnd.

Описание
Данная функция связывает идентификатор контекстной справки с указанным окном. Если дочернее окно не имеет собственного идентификатора контекстной справки, для него выводится контекстная справка его родительского окна или окна, владеющего данным дочерним окном. Это позволяет выводить для всех элементов управления диалогового окна одну и ту же контекстную справку.
SetWindowText

void SetWindowText(LPCTSTR lpszString);

Аргументы

lpszString - указатель на объект класса CString или заканчивающуюся нулем строку, содержащую новый заголовок окна или новый текст элемента управления.

Описание
Устанавливает новый заголовок окна. Если окно представляет собой элемент управления, текст помещается в данный элемент управления. Данная функция посылает сообщение WM_SETTEXT данному окну.
ShowWindow

BOOL ShowWindow(int nCmdShow);

Возвращаемое значение
Ненулевое, если окно до этого отображалось, и ноль, если оно было до этого скрыто.
Аргументы

nCmdShow - определяет режим отображения окна, связанного с объектом класса CWnd. Он может принимать одно из следующих значений:
SW_HIDE - скрывает окно и активизирует другое окно;
SW_MINIMIZE - свертывает окно в пиктограмму и активизирует самое верхнее окно в иерархическом списке окон системы;
SW_RESTORE - активизирует и отображает окно. Если окно было до этого свернуто в пиктограмму или развернуто на весь экран, Windows восстанавливает его прежние размеры и положение;
SW_SHOW - активизирует окно и отображает его с текущими размерами и положением;
SW_SHOWMAXIMIZED - активизирует окно и отображает его развернутым на весь экран;
SW_SHOWMINIMIZED - активизирует окно и отображает его свернутым в пиктограмму;
SW_SHOWMINNOACTIVE - отображает окно свернутым в пиктограмму. При этом активное окно сохраняет свою активность;
SW_SHOWNA - отображает окно в его текущем состоянии. При этом активное окно сохраняет свою активность;
SW_SHOWNOACTIVATE - отображает окно в его последнем зафиксированном состоянии. При этом активное окно сохраняет свою активность;
SW_SHOWNORMAL - активизирует и отображает окно. Если окно было до этого свернуто в пиктограмму или развернуто на весь экран, Windows восстанавливает его прежние размеры и положение.

Описание
Устанавливает режим отображения окна. Данная функция должна вызываться один раз за все приложение с аргументом CWinApp::m_nCmdShow. При последующих вызовах данной функции в качестве ее аргумента необходимо использовать одно из перечисленных выше значений переменной.
UpdateData

BOOL UpdateData(BOOL bSaveAndValidate = TRUE);

Возвращаемое значение
Ненулевое, если операция прошла успешно, и нулевое в противном случае. Если аргумент bSaveAndValidate имеет значение TRUE, то ненулевое возвращаемое значение означает успешный исход проверки передаваемых данных.
Аргументы

bSaveAndValidate - определяет, используется ли данная функция для инициализации объектов классов элементов управления диалогового окна (FALSE) или для получения информации, содержащейся в данных объектах (TRUE).

Описание
Данная функция вызывается для инициализации объектов классов элементов управления диалогового окна или для получения информации, содержащейся в этих объектах. Приложение автоматически вызывает функцию UpdateData с параметромbSaveAndValidate имеющим значение FALSE при создании модального диалогового окна функцией CDialog::OnInitDialog. Вызов данной функции производится перед выводом диалогового окна на экран. Функция CDialog::OnOk вызывает данную функцию с параметром bSaveAndValidate имеющим значение TRUE для сохранения данных, хранящихся в объектах классов элементов управления, в переменных класса диалогового окна и, в случае успешного завершения данной операции, закрытия диалогового окна (если в диалоговом окне нажимается кнопка Cancel (Отмена), то при закрытии диалогового окна функция UpdateData не вызывается).
UpdateWindow

void UpdateWindow();

Описание
Обновляет рабочую область окна, посылая сообщение WM_PAINT, если область обновления не пуста. Функция UpdateWindow посылает данное сообщение непосредственно, миную очередь сообщений приложения.
Структуры
AFX_EXTENSION_MODULE

struct AFX_EXTENSION_MODULE
{
  BOOL bInitialized;
  HMODULE hModule;
  HMODULE hResource;
  CRuntimeClass* pFirstSharedClass;
  COleObjectFactory* pFirstSharedFactory;
};

Переменные

bInitialized - имеет значение TRUE, если модуль библиотеки динамической компоновки инициализирован функцией AfxInitExtensionModule.
hModule - дескриптор модуля библиотеки динамической компоновки.
hResource - дескриптор пользовательского модуля ресурсов библиотеки динамической компоновки.
pFirstSharedClass - указатель на объект структуры CRuntimeClass, содержащий информацию о первом классе данного модуля библиотеки динамической компоновки. Используется для инициализации списка классов.
pFirstSharedFactory - указатель на первую фабрику объектов библиотеки динамической компоновки (объект COleObjectFactory). Используется для инициализации списка фабрик классов.

Описание
Объект структуры AFX_EXTENSION_MODULE используется при инициализации библиотеки расширения MFC для хранения состояния модуля этой библиотеки. Он хранит копию состояния модуля библиотеки расширения MFC, включая копии объектов классов, инициализированных данной библиотекой в процессе вызова статических конструкторов объектов перед вызовом функции DllMain. В функции DllMain библиотеки расширения MFC необходимо произвести две операции:

вызвать функцию AfxInitExtensionModule и проверить возвращаемое ею значение;
создать объект класса CDynLinkLibrary, если библиотека динамической компоновки экспортирует объекты CRuntimeClass или имеет собственные пользовательские ресурсы.