Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ps1 - 1-6 лекция
- ps2 - 7-12 лекция
- вс обозначено със - е подредено спрямо мястото им в лекцията.
- 1 лекция - Въведение :
- - съкращения (ATL,MFC,API,GDI....DDL,OLE)
- - Интегрираната развойна среда MS Visual C++
- - Файлове, създавани в средата на Microsoft Visual C++
- - Модел на програмирането под Windows( връзка на кода с идентификаторите на ресурси и контроли)
- 2 лекция - Ресурси и контроли :
- - Създаване и редактиране на ресурсите на едно приложение(AppWizard,ResourceView,работа с ресурси)
- ID{ 1 символ указва вида на ресурса като: M (menu)/ D (dialog)/ I(icon) / A
- (accelerator) / (string table)/…. }_username
- - Диалогови Елементи (Диалогови Контроли)(toolbox)
- - Методи за управление на диалози.(работа с диалози,dlgbox,msgbox,get,set)
- 3 лекция - Особености на програмирането под Windows:
- - Основното и различие от предшествениците(„стесняващата се многозадачност”)
- - Втората особеност на Win32 е 32-разрядната адресация(може да се разполага с 4 Г байта ОП)
- - подръжка на ниво процеси и потоци;
- - възможност за синхронизация на потоците;
- - съществуването на файлове, които са проектируеми в паметта;
- - наличие на механизъм за обмен на данните между процесите.
- - В Win32 процес се нарича всяка изпълняваща се програма.
- - Терминът „поток” (tread) или „нишка”
- - синхронизация на потоците.
- - светофари(semaphores), изключващи светофари (mutex), събития (event),критически секции (critical section).
- - много по-практично е програмите да работят с виртуални адреси
- - механизъм на свързване
- - странична организация на паметта (paging).
- - логическото адреснопространство на всеки процес се разбива на отделни блокове, наричани страници.
- - Диспечерът на Виртуалната памет отбелязва отдавна неизползваните страници и ги изпраща на твъдия диск.
- - Разделението на данните
- - Основните концепции в ОС Windows могат да се формулират като: (преместваемост на изпълнимите приложения; обектна ориентация на програмирането на приложенията.)
- - Основни Свойства на ОС (MS-DOS +Windows)
- - Строеж на средата Windows(фрагментирана Оперативната Памет)
- - Методи за работа с менюта (get,load,getsub,trackpopup,destroy,check,enable -disable,insert(add),delete)
- 4 лекция - Техника за създаване на приложение:
- - разширения(ASM,.C (*.CPP),EXE,RES,DEF,DLL...)
- - Алгоритъм за създаване на WINDOWS приложение
- - Файл за описание на модула *.DEF
- - Средства за връзка между приложенията в средата на Windows.
- - Динамични библиотеки Dynamic Link Library (DLL)
- - Събития – съобщения(Структура на съобщенията,32бита – код (хендъл) на обект)
- - Главната обслужваща функция за всеки обект има един и същ формат: long WinApi WndProc(hWnd, UINT message, long wParam, long lParam)
- - Обмен на съобщения. Обработка и изпращане на съобщения.Синхронизация. Диспечер на съобщенията.
- - Типове на данните в Windows(HANDLE,HWND,BYTE,WORD,DWORD,UINT,LONG,BOOL,LPSTR)
- - Унгарски запис
- - Методи за управление на диалогови контроли
- - Работа с числови данни в диалоговите елементи(getdlg,setdlg,sprintf,&stopstring)
- - sendlg,hdlg,- ID_of_DialogContro,- Processing_Way,listbox,combobox
- - radio and check boxes - BM: BM_SETCHECK, BM_GETCHECK;
- - edit box - WM: WM_GETTEXT, WM_SETTEXT.
- - Параметър Index
- - IsDlgButtonChecked(hDlg, ID) ,ChechDlgButton(hDlg, ID, (BST_CHECKED or BST_UNCHECKED) )
- 5. Лекция - Управление на прозорци в средата на Windows:
- - Типове прозорци - прозорецът на главната рамка ( main frame window)
- - WS_OVERLAPED, WS_POPUP, WS_CHILD
- - Свойства на прозорците (Помощни прозорци(WS_POPUP), Дъщерни прозорци (WS_CHILD),WM_COMMAND)
- - Модален диалог и контролите на Windows с общо предназначение
- - Диалогова кутия и Диалогови елементи
- - Работна област на прозорците
- - Контекст на устройствата. (GDI). контекст нау стройството
- - Текущо „състояние” на контекста на устройствата включва
- - Процесите при извеждане към екрана или принтера
- - ///……… графични функции
- - Език за дефиниране на ресурси
- - Видове ресурси (предефинирани в Windows, ObjectWindows (OWL) – допълнително по-мощтни ресурси (обекти))
- - Описание на МЕНЮ (*.MNU)
- - Описание на диалогова кутия (*.DLF)
- - Друг пример на фрагмент от *.RC файл
- - Методи за работа с ProgressBar контрол и таймери
- - Функция, изпращаща съобщения към диалогов елемент ProgressBar (SendDlgItemMessage)
- - Методи за работа с таймери. Създаване на таймери и установяване на стартовата стойност и стъпката за промяна(SetTimer) # include <commctrl.h> #define TIMER1 500 WM_TIMER
- - Спиране работата на указан таймер KillTimer(hWnd, nIDEvent)
- - Връщане идентификатора (хендела) на обекта в прозотрец hDlg, в който е указания с control ID контрол. HWND GetDlgItem(hDlg, control ID);
- - Установяване на състояние на достъпност или недостъпност на прозорец EnableWindow(hWnd, bEnable);
- - Показване на прозорец или контрол ShowWindow((hWnd, bEnable);
- - Координати на мишката. int LOWORD(lParam) – връща x- координата на на позицията на мишката of mouse;int y = HIWORD(lParam) връща the y- координата на на позицията на мишката;
- 6. Лекция - Структура на WIN32-приложение. Примерна програма за управление на прозорец:
- - Основни правила и ограничения при програмиране под WINDOWS
- - Структура на Windows – приложения. главната функция WinMain. WinMain трябва да изпълни следните действия
- - цикъл за обработка , предварителна обработка, функцията на прозореца
- - Процес на обработка на съобщенията .Структура MSG. Хендъл на прозорец. процеса на обработка на съобщенията.WINDOWS.H
- - WinMain() WNDCLASSEX RegisterClassEx CreateWindow() GetMessage TranslateMessage DispatchMessage
- - Цикъл за обработка на съобщенията
- - Функция GetMessage(): Функция TranslateMessage(): Функция DispatchMessage():
- - Прозоречна процедура. Процедурата може да има всякакво име, но обикновено е WndProc. LRESULT CALLBACK WndProc(
- - DefWindowProc(); * Пример за прозоречна процедура */
- - Класове на прозорците, регистрация на нов клас. RegisterClass() RegisterClassEx() Структура WNDCLASSEX (cbSize,style,lpfnWndProc....)
- - Създаване на прозорец CreateWindow() или CreateWindowEx(). (lpClassName,lpWindowName,dwStyle...) ShowWindow(hWnd, SW_SHOW);
- - Шаблон на програма за windows
- - Листинг на минимално приложение
- - Подробно описание на функциите и техните параметри
- 7. Лекция - Обекти, полиморфия и наследяване на обекти в средата на Windows:
- - Същност и модел на обектите. Обектен модел на организация на данните
- - „капсуловане” (затваряне) Съобщенията между обектите се осъществяват като:
- - Обекти в Windows могат да съдържат:
- - Обектно програмиране в средата на Windows
- - обект, клас, капсулиране (затваряне), наследяване и полиморфизъм
- - Методът на базовия клас може да се обяви като виртуален (с атрибут virtual)
- - Наследяване на свойства в Windows. Йерархичната структура на обектите се характеризира с
- - Полиморфията е свойство на обектите да реализират определена абстрактна функционалност по свой специфичен начин и налага използването на стандартизирани методи
- - Полиморфия в Windows. Полиморфия при методите. Полиморфия при съобщенията
- - Съобщенията в Windows са няколко хиляди и са точно дефинирани. Често използвани стандартни съобщения:
- - Функции за изпращане на съобщения Send Message NotifyMessage PostMessag
- - Работа с файлове
- 8. Лекция - Графични функции в VC++:
- - Update and Painting Methods. Основни средства. Цветови модел RGB (Red-Green-Blue)
- - графично устройство или GDI (graphical device interface)
- - контекст на устройството
- - Създаване на DC или зареждане на този асоцииран с прозореца GetClientRect(hWnd, &rt);
- - Ползване на цветове. Colors
- - Извеждане на текст в графичен режим Рисуващи средства BOOL CreatePen BOOL CreateSolidBrush BOOL CreateHatchBrush BOOL CreatePatternBrush
- - Рисуване Ellipse MoveToEx LineTo POINT p[n]; Polygon(hdc, p,n);
- - Поставяне на изображения от един DC в друг без промяна на размера му. Поставяне на изображения от един DC в друг с промяна на размера му.
- - Пример за статична графика. Пример за рисуване с мишката при натиснат ляв бутон. Пример за рисуване с цвят избран от палитра
- - Пример за задаване на размер на правоъгълник с мишката и поставянето на изображение в него . Пример за движение на обект в прозорец
- 9. Лекция - Библиотека MFC (Microsoft Foundation Class Library):
- - Библиотека MFC е базов набор от класове .200 члена. капсулирайки функциите на АРI с класовете от MFC
- - CWinApp CFrameWnd theApp CApp CMainWin InitInstance()
- - Примерен Листинг на минимална програма създадена на основата на класа библиотеки MFC. #include <afxwin.h> AFXWIN.H. създава екземпляр от класа CАpp
- - заграждат картата на съобщенията на главния прозорец, като между тях трябвада се намира извикването на функцията за обработка на постъпващите съобщения
- - Обработка на съобщения WM_CHAR, WM_PAINT, WM_MOVE, WM_SIZE, WMLBUTTONDOWN
- - За организацията на обработката на съобщенията е необходимо да се изпълнят следните действия:
- - Имената на макрокомандите се състоят от префикса ON_,ON_WM_LBUTTONDOWN(), ON_WM_LBUTTONUP(), ON_WM_PAINT. ON_COMMAND() BEGIN_MESSAGE_MAP()
- - OnButtonDown(). Прототип на функцията – обработчик на съобщения трябва да е поместен в описанието на класа на прозореца пред макроса DECLARE_MESSAGE_MAP().
- - При описанието се използва спецификатор от типа afx_msg. WM_LBUTTONDOWN
- - Модификация на картата на обработка на съобщенията. карта на съобщенията. макрокоманда на съобщението
- - Включване в описание на класа на прозореца на прототип на функцията – обработваща съобщението
- - В програмата се включва реализацията на функцията – обработваща съобщението
- - Пример на програма обработваща съобщения. Контекст на устройствата. указател за обекта-прозорец, обикновено „this”.
- - Съобщение WM_PAINT Генерация на съобщението WM_PAINT Примерна програма message handling.hpp
- - Съобщение WM_TIMER. За установяване на таймер се използва следната функция:
- - Съобщенията от таймера се обработват с функцията: afx_msg void OnTimer(UINT Id);
- - Съобщение WM_DESTROY. Пример на програма за извеждане на текуща дата и време. message handling II.hpp
- - Включване на меню в приложението this->Create(0, "Приложение с меню", WS_OVERLAPPEDWINDOW,rectDefautl, 0, "MYMENU");
- - Съобщение WM_COMMAND Акселератори Прозорец със съобщения
- - Пример за използване на меню, акселератори и прозорец със съобщения menu.hpp menu.cpp
- - Диалози - Класове MFC за контроли. В MFC се съдържат класове за всички стандартни элементи за управления . Те са породени от класа CWnd. Основни класове за управления:
- - Класс CDialog. Обработка на съобщения от диалози Извикване на диалога virtual int CDialog::DoModal(); Затваряне на диалога void CDialog::EndDialog(int RetCode);
- - Примерна програма с диалогов прозорец resource.h Dialogs.hpp
- - Базови класовете на библиотеката MFC - CView, CEditView, CFormView, CListView, CHtmlView, CRichView, CScrollView, CTreeView.
- - Инструментални средства.Интегрирана развойна среда MS Visual C++ (Integrated Development Environment – (IDE))
- - Нови концепции в Windows. Нов изпълняем формат: ххх.ЕХЕ. NEW EXECUTABLE FORMAT
- - Отнася за : приложения : *.ЕХЕ; динамични библиотеки *.DLL; някои двоични файлове: шрифтове;драйвери за отделните устройства.
- 10. Лекция - Работа с динамична библиотека (DLL):
- - Използване на DLL. Библиотеки за импортиране. Файл име.lib, използван принеявно включване на DLL . библиотеки за импортиране (import libraries)
- - Съгласуване на интерфейса extern "С" int MyOldCFunction(int myParam); #include "MyCLib.h"
- - Неявно включване на DLL. Търсенето на DLL файлове ОС осъществява вследната последователност. в каталога, в който се намира ЕХЕ-файла. в текущия каталог на процеса. в системния каталог на Windows
- - Динамично зареждане и отделяне на DLL. Зареждане на обикновена DLL HINSTANCE hMyDll; if((hMyDll=::LoadLibrary("MyDLL"))==NULL)
- - ::LoadLibrary typedef typedef int (WINAPI *PFN_MyFunction)(char *); PFN_MyFunction pfnMyFunction;
- - hMyDll=::LoadLibrary("MyDLL"); pfnMyFunction=(PFN_MyFunction)::GetProcAddress(hMyDll,"MyFunction"); int iCode=(*pfnMyFunction)("Hello");
- - ::GetProcAddress. pfnMyFunction=(PFN_MyFunction)::GetProcAddress(hMyDll, MAKEINTRESOURCE(1)); ::FreeLibrary: ::FreeLibrary(hMyDll); FindResource LoadResource
- - Пример за DLL и способите за зареждане. В хедърния файл се определя макроконтстанта EXPORT CALLBACK MyDLL.h
- - #define EXPORT extern "C" __declspec (dllexport) EXPORT int CALLBACK MyFunction(char *str);MyDLL.cpp #include <windows.h> #include "MyDLL.h"
- - int WINAPI DllMain(HINSTANCE hInstance, DWORD fdReason, PVOID pvReserved) EXPORT int CALLBACK MyFunction(char *str)
- - Пример за неявно включване на DLL в приложение. Пример за динамично зареждащо DLL приложение
- - Създаване на DLL. Функция DllMain. Структура на най-проста функция DllMain може да изглежда така:
- - Експортиране на функции от DLL Метод __declspec (dllexport). Файлове за определяне на модула GetProcAddress () MyFunction @1 NONAME
- - Eкспортирaне на класове
- 11. Лекция - ActiveX технологии:
- - Технологии ActiveX. АctiveX включва клиентска и сървърна части, а така също и библиотеки за разработващия
- - Програмни елементи ActiveX. Active Scripting. Документите ActiveX Виртуалната машина Java ActiveX Server Framework .Средствата за разработване
- - Основни предимства на използването на технологията ActiveX
- - Клиентската технология ActiveX (Active Desktop) . Сървърна технология ActiveX (Active Server)
- 12. Лекция - Приложения с БД
- - Създаването на приложения, които използват база данни за C++ става със следната процедура:
- - Създаване на СОМ компонента на Visual C++
- - Най-просто създаването на MFC компонента е да се заменят няколко функции в готов шаблон на външна компонента:
- - C1CGetImageFragment 1CGetImageFragment.cpp MyAddIn.cpp MyAddIn.h enum Methods g_MethodNames g_kClassNames GetParamDefValue HasRetVal CallAsFunc Manifest.xml
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement