русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Организация интерфейса пользователя


Дата добавления: 2015-01-16; просмотров: 1481; Нарушение авторских прав


 

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

1. меню;

2. диалоговые окна;

3. кнопки;

4. списки;

5. полосы прокрутки;

6. индикаторы;

7. переключатели разных типов;

8. и т.п.

Использование стандартных элементов позволяет любой программе выглядеть как все остальные программы под эту ОС.

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

1. Разработка внешнего вида программы, заключающая в размещении элементов управления в окне программы, диалоговых окнах.

2. Написание обработчиков команд элементов управления.

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

Вторым шагом является написание обработчиков событий, которые генерируются при нажатии на соответствующие элементы управления, чтобы они “заработали”.

Такой подход называется визуальным программированием, от чего, например, и происходит название Visual Studio, Visual C++, Visual Basic и т.д.

На простом примере рассмотрим подключение меню к программе.

 

// Стандартный включаемый файл Windows

#include <windows.h>

 

#include «resource.h»



 

// Прототип функции обратного вызова для обработки сообщений

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

 

int g_iShape = 0;

 

// Функция вызывается автоматически, когда программа запускается

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)

{

HWND hWnd;

MSG msg;

WNDCLASSEX wndclass;

 

// Настройка класса окна

wndclass.cbSize = sizeof(WNDCLASSEX);

wndclass.style = CS_HREDRAW | CS_VREDRAW;

wndclass.lpfnWndProc = WndProc;

wndclass.cbClsExtra = 0;

wndclass.cbWndExtra = 0;

wndclass.hInstance = hInstance;

wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);

wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);

wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);

wndclass.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);

wndclass.lpszClassName = “Window Class”; // Имя класса

wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

 

// Регистрация класса окна

if (RegisterClassEx(&wndclass) == 0)

{

// Сбой программы, выход

return 0;

}

 

// Создание окна

hWnd = CreateWindowEx(

WS_EX_OVERLAPPEDWINDOW,

«Window Class», // Имя класса

«Приложение Windows», // Текст заголовка

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,

CW_USEDEFAULT,

320,

320,

NULL,

NULL,

hInstance,

NULL);

 

// Отображение окна

ShowWindow(hWnd, iCmdShow);

 

// Обработка сообщений, пока программа не будет прервана

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

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

 

return (int)msg.wParam;

}

 

// Функция обратного вызова для обработки сообщений

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

{

int wmId;

HDC hDC;

PAINTSTRUCT ps;

 

switch(iMsg)

{

// Вызыватся, когда пользователь выполняет некую команду, например из главного меню

case WM_COMMAND:

wmId = LOWORD(wParam);



<== предыдущая лекция | следующая лекция ==>
HDC – контекст устройства или информационный контекст. | Switch (wmId)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.