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


 
Run
virtual int Run();
Возвращаемое значение
Целочисленное значение, возвращаемое потоком. Это значение может быть получено с использованием функции ::GetExitCodeThread.
Описание
Содержит цикл обработки сообщений интерфейсного потока, используемый по умолчанию. Функция Run получает и распределяет сообщения Windows до тех пор, пока приложение не получит сообщение WM_QUIT. Если в настоящее время очередь сообщений потока пуста, то функция Run вызывает функцию OnIdle, осуществляющую фоновую обработку. Поступающие сообщения сначала обрабатываются функцией PreTranslateMessage, производящей их специальную обработку, а затем - функцией Windows ::TranslateMessage, обрабатывающей сообщения от клавиатуры. После этого вызывается функция Windows ::DispatchMessage. Функция Run очень редко перегружается для обеспечения нестандартного пользовательского интерфейса. Эта функция используется только в интерфейсных потоках.
SetThreadPriority
BOOL SetThreadPriority(int nPriority);
Возвращаемое значение
Ненулевое, если создание потока завершилось успешно, и нулевое в противном случае.
Аргументы
"sectiontableheader"nPriority - определяет новое значение уровня приоритета в своем классе приоритета. Этот аргумент может принимать следующие значения, перечисленные в порядке убывания приоритета.
"sectiontableheader"THREAD_PRIORITY_TIME_CRITICAL
"sectiontableheader"THREAD_PRIORITY_HIGHEST
"sectiontableheader"THREAD_PRIORITY_ABOVE_NORMAL
"sectiontableheader"THREAD_PRIORITY_NORMAL
"sectiontableheader"THREAD_PRIORITY_BELOW_NORMAL
"sectiontableheader"THREAD_PRIORITY_LOWEST
"sectiontableheader"THREAD_PRIORITY_IDLE
"sectiontableheader"
Дополнительная информация об уровнях приоритета потока содержится в описании функции ::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.
Аргументы
"sectiontableheader"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);
Возвращаемое значение
Зависит от посланного сообщения.
Аргументы
"sectiontableheader"message - определяет обрабатываемое сообщение Windows.
"sectiontableheader"wParam - содержит дополнительную информацию, определяемую сообщением.
"sectiontableheader"lParam - содержит дополнительную информацию, определяемую сообщением.
Описание
Вызывает процедуру окна, используемую по умолчанию. Эта процедура стандартным образом обрабатывает оконные сообщения, не обработанные приложением. Использование этой функции гарантирует, что все сообщения будут обработаны. При ее вызове следует передавать те же аргументы, что были получены функцией обработки сообщения, в которой она вызывается.
DoDataExchange
virtual void DoDataExchange(CDataExchange* pDX);
Аргументы
"sectiontableheader"pDX - указатель на объект класса CDataExchange.
Описание
Данная функция вызывается приложением для обмена данными и проверки корректности данных передаваемых между объектами классов диалогового окна и включенных в него объектов классов элементов управления. Эта функция не должна вызываться непосредственно. Ее вызов допустим только через вызов функции UpdateData, вызываемой для инициализации переменных в объектах классов элементов управления и для передачи значений этих переменных обратно в класс диалогового окна. При создании пользовательского класса, производного от класса CDialog, для того, чтобы иметь возможность воспользоваться методами автоматического обмена данными между объектами классов диалогового окна и элементов управления, а также автоматической проверки передаваемых при этом данных, пользователь должен перегрузить функцию DoDataExchange в своем диалоговом классе. Эту работу выполняет за него среда программирования Visual Studio.NET, включающая в эту функцию карту обмена данными данного диалогового окна и вызовы глобальных функций проверки допустимости значений передаваемых данных. Заполнение карты обмена данными происходит в процессе включения в класс диалогового окна переменных, связанных с элементами управления, с использованием соответствующих мастеров, вызываемых из окна Class View (Просмотр классов). Описание перегруженной функции DoDataExchange должно предшествовать описаниям макросов в файле реализации.
EndPaint
void EndPaint(LPPAINTSTRUCT lpPaint);
Аргументы
"sectiontableheader"lpPaint - указатель на объект структуры PAINTSTRUCT, содержащий информацию, необходимую для вывода на экран и полученную в функции BeginPaint.
Описание
Отмечает конец процесса рисования в текущем окне. Функция EndPaint должна вызываться для каждого вызова функции BeginPaint после того, как инициированный данной функцией процесс рисования будет завершен. Если функция BeginPaint скрыла текстовый курсор, то функция EndPaint выведет его на экран.
 
« Предыдущая статья   Следующая статья »