Изменения свойств и уничтожения перекрывающихся и всплывающих окон

Автор работы: Пользователь скрыл имя, 18 Ноября 2012 в 22:18, курсовая работа

Краткое описание

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

Содержание

ВВЕДЕНИЕ 4
1 Работа с окнами 9
1.1 Условие 9
1.2 Описание программного кода 9
1.3 Пример работы программы 13
2 Работа со стандартными элементами управления 15
2.1 Условие 15
2.2 Описание программного кода 15
2.3 Пример работы программы 19
3 Интерфейс графических устройств 20
3.1 Условие 20
3.2 Описание программного кода 21
3.3 Пример работы программы 23
4 Блоки диалога 24
4.1 Условие 24
4.2 Пользовательский блок диалога 25
4.3 Стандартные блоки диалога 26
4.4 Пример работы программы 27
5 Вторичный поток 31
5.1 Условие 31
5.2 Описание программного кода 31
5.3 Пример работы программы 34
ВЫВОД 36
Список ИСПользуемой литературы 37
Приложение А. Исходный код к заданию №1 38
Приложение Б. Исходный код к заданию №2 40
Приложение В. Исходный код к заданию №3 43
Приложение Г. Исходный код к заданию №4 45
Приложение Д. Исходный код к заданию №5 48

Прикрепленные файлы: 1 файл

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА (Автосохраненный).docx

— 1.27 Мб (Скачать документ)

if(!RegisterClass(&w)) return false;

hWnd=CreateWindow(ProgName,Title, WS_OVERLAPPEDWINDOW,0,0,CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);

GetClientRect(hWnd,&value);

/*---------------Кнопка установки  параметров------------------------*/

butClick=CreateWindow("button", "Set", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,value.right-100,value.bottom-50, 80, 20, hWnd, (HMENU)ButtonID, hInstance, NULL);

/*--------------------Поля для ввода параметров---------------------*/

Edit1=CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT",NULL,ES_AUTOHSCROLL|WS_CHILD|WS_VISIBLE,value.right-160,value.bottom-80,60,20,hWnd,(HMENU) EditID1,NULL,NULL);

Edit2=CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT",NULL,ES_AUTOHSCROLL|WS_CHILD|WS_VISIBLE,value.right-160,value.bottom-110,60,20,hWnd,(HMENU) EditID2,NULL,NULL);

Edit3=CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT",NULL,ES_AUTOHSCROLL|WS_CHILD|WS_VISIBLE,value.right-160,value.bottom-140,60,20,hWnd,(HMENU) EditID3,NULL,NULL);

Edit4=CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT",NULL,ES_AUTOHSCROLL|WS_CHILD|WS_VISIBLE,value.right-160,value.bottom-170,60,20,hWnd,(HMENU) EditID4,NULL,NULL);

/*----------------Подсказки для ввода-------------------------------*/

hStatic1=CreateWindow("static","Координата Х:", WS_TABSTOP|WS_CHILD|WS_VISIBLE,value.right-310,value.bottom-170,145,20,hWnd,0,NULL,NULL);

hStatic2=CreateWindow("static","Координата Y:", WS_TABSTOP|WS_CHILD|WS_VISIBLE,value.right-310,value.bottom-140,145,20,hWnd,0,NULL,NULL);

hStatic3=CreateWindow("static","Длина полуоси dx:", WS_TABSTOP|WS_CHILD|WS_VISIBLE,value.right-310,value.bottom-110,145,20,hWnd,0,NULL,NULL);

hStatic4=CreateWindow("static","Длина полуоси dy:", WS_TABSTOP|WS_CHILD|WS_VISIBLE,value.right-310,value.bottom-80,145,20,hWnd,0,NULL,NULL);

/*--------------Начальные данные  для эллипса------------------------*/

SetDlgItemText(hWnd,EditID1,"50");//значение dy

SetDlgItemText(hWnd,EditID2,"100");//значение dx

SetDlgItemText(hWnd,EditID3,"300");//значение Y

SetDlgItemText(hWnd,EditID4,"300"); //значение Х

if (!hWnd) return false;

ShowWindow(hWnd, nCmdShow);

while(GetMessage(&msg, NULL, 0, 0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return msg.wParam;

}

 

 

LONG  MyWinP(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)

{

HDC hdc;

PAINTSTRUCT ps;

datas d;

DWORD id;

static HANDLE hThr;

char buf[256];

switch(msg)

{

case WM_CREATE:

hThr=0;

break;

case WM_PAINT:

hdc = BeginPaint(hWnd, &ps);

d.hwnd=hWnd;

GetDlgItemText(hWnd,EditID1,buf,5);

d.dy=atof(buf);

GetDlgItemText(hWnd,EditID2,buf,5);

d.dx=atof(buf);

GetDlgItemText(hWnd,EditID3,buf,5);

d.centerY=atof(buf);

GetDlgItemText(hWnd,EditID4,buf,5);

d.centerX=atof(buf);

if (hThr!=0) CloseHandle(hThr);

hThr=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Thread2,(LPVOID)&d,0,&id);

EndPaint(hWnd, &ps);

break;

case WM_COMMAND:

if(LOWORD(wParam)==ButtonID)

{

SendMessage(hWnd,WM_PAINT,NULL,NULL);

}

break;

case WM_DESTROY:

CloseHandle(hThr);

PostQuitMessage(0);

break;

default:

return DefWindowProc(hWnd, msg, wParam, lParam);

}

return 0;

}

 

DWORD WINAPI Thread2(LPVOID params)

{

datas *dt=(datas*)params;

HDC dc=GetDC(dt->hwnd);

Ellipse(dc,  dt->centerX-dt->dx  ,  dt->centerY-dt->dy  ,dt->centerX+dt->dx  ,  dt->centerY+dt->dy   );

ReleaseDC(dt->hwnd,dc);

return 0;

}

 


Информация о работе Изменения свойств и уничтожения перекрывающихся и всплывающих окон