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

Нажмите для полного просмотра!
Программирование в Win32 API, слайд №1Программирование в Win32 API, слайд №2Программирование в Win32 API, слайд №3Программирование в Win32 API, слайд №4Программирование в Win32 API, слайд №5Программирование в Win32 API, слайд №6Программирование в Win32 API, слайд №7Программирование в Win32 API, слайд №8Программирование в Win32 API, слайд №9Программирование в Win32 API, слайд №10Программирование в Win32 API, слайд №11Программирование в Win32 API, слайд №12Программирование в Win32 API, слайд №13Программирование в Win32 API, слайд №14Программирование в Win32 API, слайд №15Программирование в Win32 API, слайд №16Программирование в Win32 API, слайд №17

Вы можете ознакомиться и скачать презентацию на тему Программирование в Win32 API. Доклад-сообщение содержит 17 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Системное программирование
Лекция №16
Программирование в Win32 API
Описание слайда:
Системное программирование Лекция №16 Программирование в Win32 API

Слайд 2





Венгерская нотация
Каждое слово в имени переменной пишется с прописной буквы и слитно с другими словами. 
Каждый идентификатор предваряется несколькими строчными буквами, определяющими его тип. 
 
nMyVariable — переменная целого типа
cYourVariable — символьная перемення (char)
pszMyBuffer — указатель на строку с нулевым ограничителем (pointer to string terminated by zero)
Описание слайда:
Венгерская нотация Каждое слово в имени переменной пишется с прописной буквы и слитно с другими словами. Каждый идентификатор предваряется несколькими строчными буквами, определяющими его тип. nMyVariable — переменная целого типа cYourVariable — символьная перемення (char) pszMyBuffer — указатель на строку с нулевым ограничителем (pointer to string terminated by zero)

Слайд 3





Венгерская нотация
Описание слайда:
Венгерская нотация

Слайд 4





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

Слайд 5





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

Слайд 6





Программа для Windows
#include <windows.h>
LRESULT CALLBACK HelloWorldWndProc ( HWND, 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;
Описание слайда:
Программа для Windows #include <windows.h> LRESULT CALLBACK HelloWorldWndProc ( HWND, 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_ 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;
    }
Описание слайда:
Программа для Windows WndClass.hInstance = hInstance; WndClass.hIcon = Loadlcon (NULL,IDC_ 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»,
                                       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;
    }
Описание слайда:
Программа для Windows hWnd = 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);
  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);
{
Описание слайда:
Программа для Windows /*Показать наше окно*/ ShowWindow (hWnd, nCmdShow); 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);
   {
     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;
Описание слайда:
Программа для Windows HDC hDC; PAINTSTRUCT PaintStruct; RECT Rect; switch(Message); { 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:
         PostQuitMessage(0);
         return 0;
  }
return DefWindowProc(hWnd, Message, wParam, lParam);
}
Описание слайда:
Программа для Windows case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, Message, wParam, lParam); }

Слайд 12





Программа для Windows
 WINAPI — определяет порядок передачи параметров при вызове процедуры 
hInstance  HINSTANCE = HANDLE = void*; условный номер экземпляра программы (хэндл)
hPrevInstance не используется
pszCmdLine — указатель на командную строку, которая набирается после имени запускаемой программы
nCmdShow — определяет, в каком виде окно появится на экране
Описание слайда:
Программа для Windows WINAPI — определяет порядок передачи параметров при вызове процедуры hInstance HINSTANCE = HANDLE = void*; условный номер экземпляра программы (хэндл) hPrevInstance не используется pszCmdLine — указатель на командную строку, которая набирается после имени запускаемой программы nCmdShow — определяет, в каком виде окно появится на экране

Слайд 13





Возможные значения параметра nCmdShow
Описание слайда:
Возможные значения параметра nCmdShow

Слайд 14





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

Слайд 15





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

Слайд 16





Цикл обработки сообщений
 Сообщение – это структура
Поле 1: хэндл окна-адресата
Поле 2: номер сообщения 
Поле 3,4: параметры собщения
 Поле 5: время выдачи сообщения
Поле 6: позиция, на которой находится курсор в момент выдачи сообщения
Описание слайда:
Цикл обработки сообщений Сообщение – это структура Поле 1: хэндл окна-адресата Поле 2: номер сообщения Поле 3,4: параметры собщения Поле 5: время выдачи сообщения Поле 6: позиция, на которой находится курсор в момент выдачи сообщения

Слайд 17





Функция GetMessage
 Аргумент 1 : указатель на структуру типа MSG
Аргумент 2: хэндл окна, созданного программой
Аргумент 3,4: нижняя и верхняя границы номеров сообщений, которые разрешено передавать оконной функции
Функция всегда возвращает ненулевое значение – по нулевому значению работа программы прекращается. Это сообщение имеет имя WM_QUIT
Описание слайда:
Функция GetMessage Аргумент 1 : указатель на структуру типа MSG Аргумент 2: хэндл окна, созданного программой Аргумент 3,4: нижняя и верхняя границы номеров сообщений, которые разрешено передавать оконной функции Функция всегда возвращает ненулевое значение – по нулевому значению работа программы прекращается. Это сообщение имеет имя WM_QUIT



Похожие презентации
Mypresentation.ru
Загрузить презентацию