Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Программирование в Win32 API

Венгерская нотацияКаждое слово в имени переменной пишется с прописной буквы и слитно с другими словами. Каждый идентификатор предваряется несколькими строчными буквами, определяющими его тип. nMyVariable — переменная целого типаcYourVariable — символьная перемення (char)pszMyBuffer — указатель на
Системное программированиеЛекция №16Программирование в Win32 API Венгерская нотацияКаждое слово в имени переменной пишется с прописной буквы и слитно Венгерская нотация Очередь сообщений В Windows существует одна общесистемная очередь сообщений и очереди сообщений Программа для WindowsWinMain(список аргументов){Подготовка и создание класса окон с заданными характеристикамиСоздание экземпляра Программа для Windows#include LRESULT CALLBACK HelloWorldWndProc ( HWND, UINT, UINT, LONG); int Программа для WindowsWndClass.hInstance = hInstance;WndClass.hIcon = Loadlcon (NULL,IDC_ APPLICATION);WndClass.hCursor = LoadCursor (NULL,. Программа для WindowshWnd = CreateWindow(szClassName, «Program No1», Программа для Windows/*Показать наше окно*/ ShowWindow (hWnd, nCmdShow); UpdateWindow(hWnd);/*Начало цикла сообщений*/ while Программа для WindowsHDC hDC;PAINTSTRUCT PaintStruct;RECT Rect;switch(Message);  {   case WM_PAINT: Программа для Windows   case WM_DESTROY:     PostQuitMessage(0); Программа для Windows WINAPI — определяет порядок передачи параметров при вызове процедуры Возможные значения параметра nCmdShow Функция CreateWindow Аргумент 1 : указатель на строку с именем класса, к Функция ShowWindow Аргумент 1 : хэндл окнаАргумент 2: вид отображения окна на экране Цикл обработки сообщений Сообщение – это структураПоле 1: хэндл окна-адресатаПоле 2: номер Функция GetMessage Аргумент 1 : указатель на структуру типа MSGАргумент 2: хэндл
Слайды презентации

Слайд 2 Венгерская нотация

Каждое слово в имени переменной пишется с

Венгерская нотацияКаждое слово в имени переменной пишется с прописной буквы и

прописной буквы и слитно с другими словами.
Каждый идентификатор

предваряется несколькими строчными буквами, определяющими его тип.

nMyVariable — переменная целого типа

cYourVariable — символьная перемення (char)

pszMyBuffer — указатель на строку с нулевым ограничителем (pointer to string terminated by zero)


Слайд 3 Венгерская нотация

Венгерская нотация

Слайд 4 Очередь сообщений

В Windows существует одна общесистемная очередь

Очередь сообщений В Windows существует одна общесистемная очередь сообщений и очереди

сообщений и очереди сообщений у каждого окна (First In

First Out).
Операционная система реализует циклы, в ходе которых опрашивается очередь и выбирается информация о сообщениях в них.
При запуске каждой программы должно быть создано окно и запущен цикл обработки сообщений.
Функция WinMain() является стандартной точкой входа в программы для Windows; функция окна от нее отделена.

Слайд 5 Программа для Windows
WinMain(список аргументов)
{
Подготовка и создание класса окон

Программа для WindowsWinMain(список аргументов){Подготовка и создание класса окон с заданными характеристикамиСоздание

с заданными характеристиками
Создание экземпляра окна только что созданного класса
Пока

не произошло необходимое для выхода событие
Опрашивать очередь сообщений и передавать их оконной функции;
Возврат из программы;
}
WindowFunction(список аргументов)
{
Обработать полученное сообщение;
Возврат;
}

Слайд 6 Программа для Windows
#include
LRESULT CALLBACK HelloWorldWndProc ( HWND,

Программа для Windows#include LRESULT CALLBACK HelloWorldWndProc ( HWND, UINT, UINT, LONG);

UINT, UINT, LONG);
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE

hPrevhInstance, LPSTR IpszCmdParam, int nCmdShow )
{
HWND hWnd;
WNDCLASS WndClass;
MSG Msg;
char szClassName[] = «HelloWorld»; !*
/*Регистрируем создаваемый класс*/
/*Заполняем структуру типа WNDCLASS */
WndClass.style = CS_HREDRAW I CS_VREDRAW;
WndClass.lpfnWndProc = HelloWorldWndProc;
WndClass.cbClsExtra = 0;
WndClass.cbWndExtra = 0;

Слайд 7 Программа для Windows
WndClass.hInstance = hInstance;
WndClass.hIcon = Loadlcon (NULL,IDC_

Программа для WindowsWndClass.hInstance = hInstance;WndClass.hIcon = Loadlcon (NULL,IDC_ APPLICATION);WndClass.hCursor = LoadCursor

APPLICATION);
WndClass.hCursor = LoadCursor (NULL,. IDC_ ARROW);
WndClass.hbrBackground = (HBRUSH) GetStockObject

(WHITE_BRUSH);
WndClass.IpszMenuName = NULL;
WndClass.IpszClassName = szClassName;

if(!RegisterClass(&WndClass) )
{
MessageBox(NULL, »Cannot register class», »Error», MB_OK);
return 0;
}

Слайд 8 Программа для Windows
hWnd = CreateWindow(szClassName, «Program No1»,

Программа для WindowshWnd = CreateWindow(szClassName, «Program No1»,

WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL,
hInstance, NULL);

if(!hWnd)
{
MessageBox(NULL, »Cannot create window», »Error», MB_OK);
return 0;
}

Слайд 9 Программа для Windows
/*Показать наше окно*/
ShowWindow (hWnd, nCmdShow);

Программа для Windows/*Показать наше окно*/ ShowWindow (hWnd, nCmdShow); UpdateWindow(hWnd);/*Начало цикла сообщений*/

UpdateWindow(hWnd);

/*Начало цикла сообщений*/
while (GetMessage (&Msg, NULL, 0, 0))

{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;

LRESULT CALLBACK HelloWorldWndProc ( HWND hWnd, UINT Message,
UINT wParam, LONG lParam);
{

Слайд 10 Программа для Windows

HDC hDC;
PAINTSTRUCT PaintStruct;
RECT Rect;
switch(Message);
{

Программа для WindowsHDC hDC;PAINTSTRUCT PaintStruct;RECT Rect;switch(Message); {  case WM_PAINT:

case WM_PAINT:
hDC

= BeginPaint(hWnd, &PaintStruct);
GetClientRect(hWnd, &Rect);
DrawText(hDC, »Hello, World!», -1, &Rect,
DT_SINGLELINE I DT_CENTER I DT_VCENTER);
EndPaint(hWnd, &PaintStruct);
return 0;

Слайд 11 Программа для Windows

case WM_DESTROY:

Программа для Windows  case WM_DESTROY:   PostQuitMessage(0);

PostQuitMessage(0);
return

0;
}

return DefWindowProc(hWnd, Message, wParam, lParam);
}

Слайд 12 Программа для Windows

WINAPI — определяет порядок передачи

Программа для Windows WINAPI — определяет порядок передачи параметров при вызове

параметров при вызове процедуры

hInstance HINSTANCE = HANDLE =

void*; условный номер экземпляра программы (хэндл)
hPrevInstance не используется
pszCmdLine — указатель на командную строку, которая набирается после имени запускаемой программы
nCmdShow — определяет, в каком виде окно появится на экране




Слайд 13 Возможные значения параметра nCmdShow

Возможные значения параметра nCmdShow

Слайд 14 Функция CreateWindow

Аргумент 1 : указатель на строку

Функция CreateWindow Аргумент 1 : указатель на строку с именем класса,

с именем класса, к которому принадлежит создаваемое окно
Аргумент 2:

указатель на строку текста - заголовка окна
Аргумент 3: стиль окна (индивидуальные характеристики конкретного окна). В файле winuser.h определено несколько десятков стилей; их идентификаторы начинаются с WS.
Аргументы 4-7: положение окна на экране (в пикселях) – отступы верхнего левого угла от левого края, верхней границы, ширина и высота окна.
Аргумент 8: хэндл окна, являющегося родительским по отношению к данному.
Аргумент 9: хэндл меню окна.
Аргумент 10: хэндл экземпляра запускаемой программы.
Аргумент 11: дополнительные данные для некоторых случаев запуска программы.




Слайд 15 Функция ShowWindow

Аргумент 1 : хэндл окна
Аргумент 2:

Функция ShowWindow Аргумент 1 : хэндл окнаАргумент 2: вид отображения окна на экране

вид отображения окна на экране





Слайд 16 Цикл обработки сообщений

Сообщение – это структура
Поле 1:

Цикл обработки сообщений Сообщение – это структураПоле 1: хэндл окна-адресатаПоле 2:

хэндл окна-адресата
Поле 2: номер сообщения
Поле 3,4: параметры собщения

Поле 5: время выдачи сообщения
Поле 6: позиция, на которой находится курсор в момент выдачи сообщения






  • Имя файла: programmirovanie-v-win32-api.pptx
  • Количество просмотров: 135
  • Количество скачиваний: 0