Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

отчет по СпроЛаб3

.doc
Скачиваний:
18
Добавлен:
13.04.2015
Размер:
65.02 Кб
Скачать

Министерство образования и науки, молодежи и спорта Украины

Харьковский национальный университет радиоэлектроники

Кафедра ЭВМ

Отчет

по лабораторной работе №3

по теме: «СРЕДСТВА ВВОДА ИНФОРМАЦИИ»

Вариант №2

Выполнил: Проверил:

Ст.гр. Ки-10-2

Артемьев Даниил

Харьков 2011

1.Цель Работы;

Ознакомление с устройствами, осуществляющими ввод информации в компьютер (мышь, клавиатура), их программным представлением в операционной системе, а также с программными элементами взаимодействия пользователя и ЭВМ (диалоговые окна), получение практических навыков по составлению, написанию и отладке программ, осуществляющих взаимодействие ЭВМ-пользователь.

2.Задание;

Написать программу телетайпа, которая выводит в окно приложения символы нажатых клавиш. Место вывода текста может меняться при помощи курсора мыши.

3. Текст программы;

#include <windows.h>

#include <WindowsX.h>

const int n=50, m=100;

int Cnt=0,CntL=-1,MXY[n][3]; //хранит коор.и длину строки

char MOut[n][m]; //массив строк

HINSTANCE hInst;

LPCTSTR szWindowClass = "QWERTY";

LPCTSTR szTitle = "Программа";

ATOM MyRegisterClass(HINSTANCE hInstance);

BOOL InitInstance (HINSTANCE, int);

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int APIENTRY WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR IpCmdLine,

int nCmdShow)

{

MSG msg;

MyRegisterClass(hInstance);

if (!InitInstance(hInstance,nCmdShow))

{

return FALSE;

}

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

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return msg.wParam;

}

ATOM MyRegisterClass(HINSTANCE hInstance)

{

WNDCLASSEX wcex;

wcex.cbSize = sizeof (WNDCLASSEX);

wcex.style = CS_HREDRAW | CS_VREDRAW;

wcex.lpfnWndProc = (WNDPROC)WndProc;

wcex.cbClsExtra = 0;

wcex.cbWndExtra = 0;

wcex.hInstance = hInstance;

wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);

wcex.hCursor = LoadCursor(NULL, IDC_ARROW);

wcex.hbrBackground = GetSysColorBrush(COLOR_BTNFACE);

wcex.lpszMenuName = NULL;

wcex.lpszClassName = szWindowClass;

wcex.hIconSm = NULL;

return RegisterClassEx(&wcex);

}

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) //Созд.Окна

{

HWND hWnd;

hInst = hInstance;

hWnd = CreateWindow(szWindowClass,

szTitle,

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,

CW_USEDEFAULT,

400,

250,

NULL,

NULL,

hInstance,

NULL);

if (!hWnd)

{

return FALSE;

}

ShowWindow (hWnd, nCmdShow);

UpdateWindow (hWnd);

return TRUE;

}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{

PAINTSTRUCT ps;

HDC hdc;

RECT rt;

GetClientRect(hWnd, &rt);

switch (message)

{

case WM_LBUTTONDOWN: //Сообщ.наж.лев.кл.мыши

{

CntL++; //Перех.на след.строку

Cnt=0; //Обнул. длину строки

MXY[CntL][0]=GET_X_LPARAM(lParam); //Коорд.

MXY[CntL][1]=GET_Y_LPARAM(lParam); //Коорд.

break;

}

case WM_CREATE:

{

break;

}

case WM_CHAR: //сообщ.когда приходит символ

{

if(Cnt!=m)

{

MOut[CntL][Cnt]=(char)wParam; //зап.в строке символ

Cnt++;

MXY[CntL][2]=Cnt; //запис.длину в строку в МХУ

InvalidateRect(hWnd,&rt,true);

}

else

{

break;

}

}

case WM_KEYDOWN: //при наж приход.код клавиши

{

switch(wParam)

{

case VK_BACK: //Стир.символ

{

Cnt-=1;

}

}

}

case WM_PAINT: //Перерисовка всех окон

{

hdc = BeginPaint(hWnd,&ps);

for(int i=0;i<=CntL;i++)

TextOut(hdc,MXY[i][0],MXY[i][1],(char*)MOut[i],MXY[i][2]);

ValidateRect(hWnd, &rt);

EndPaint(hWnd, &ps);

break;

}

case WM_DESTROY: //приходит при закр.окна

{

PostQuitMessage (0);

break;

}

default:

{

return DefWindowProc (hWnd, message, wParam, lParam); //в начало окон.процедуры

}

}

return 0;

}5. Результаты работы программы;

6.Вывод;

В данной лабораторной работе я ознакомился с устройствами, осуществляющими ввод информации в компьютер (мышь, клавиатура), их программным представлением в операционной системе, а также с программными элементами взаимодействия пользователя и ЭВМ (диалоговые окна), получил практические навыки по составлению, написанию и отладке программ.