реклама на сайте
подробности

 
 
> STemwin, Начало
Саша_74
сообщение Feb 8 2017, 10:50
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 24-04-08
Пользователь №: 37 059



Доброго дня.
Нужна помощь. Первый проект, stemwin с менеджером окон. Без OS.
Как правильно сделать вывод значения переменной (к примеру температуру),
чтоб stemwin периодически само обновляло его на экране (к примеру каждую секунду).
И подскажите где можно почитать о менеджере окон stemwin, желательно на русском.
Спасибо.

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
golf2109
сообщение Feb 23 2017, 15:31
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 15-04-10
Из: Kiev
Пользователь №: 56 654



а зачем нужен менеджер окон если выводится тоько одно значение?
Go to the top of the page
 
+Quote Post
mantech
сообщение Feb 24 2017, 08:13
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(golf2109 @ Feb 23 2017, 18:31) *
а зачем нужен менеджер окон если выводится тоько одно значение?

+1 Наверно, чтобы одно окно и нарисовать с label-ом biggrin.gif
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 24 2017, 15:32
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Как??! Неужто можно рисовать без окон????!!!! biggrin.gif
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Feb 24 2017, 19:32
Сообщение #5


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Саша_74 @ Feb 8 2017, 12:50) *
Доброго дня.
Нужна помощь. Первый проект, stemwin с менеджером окон. Без OS.


Без OS будет больно.

Я делал так в свое время:
Организовывал массив с указателями на виджеты окна при создании окна, в этом же массиве связывал их с указателями на переменные и их аттрибуты.
Потом в отдельной задаче по событию от таймера и прочим событиям вызывал GUI_Exec и в виджеты переписывал актуальные значения переменных.
GUI_Exec имеет вложенность в десятки вызовов, так что надо иметь хороший наблюдатель стека.
Go to the top of the page
 
+Quote Post
mantech
сообщение Feb 24 2017, 21:26
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Саша_74 @ Feb 8 2017, 13:50) *
Первый проект, stemwin с менеджером окон. Без OS.
Как правильно сделать вывод значения переменной (к примеру температуру),


Если это "спортивный интерес", то я понимаю, но если все, что требуется, это нарисовать прямоугольник с рамкой, в котором будет несколько текстовых строк, то зачем вообще связываться с емвином??
Go to the top of the page
 
+Quote Post
hd44780
сообщение Feb 26 2017, 06:35
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Я делал что-то подобное (панельку с часами, значками наподобие виндозного трея) следующим образом:

1. Создаю окно:
Код
    WM_HWIN hStatusWin;
.................................
    hStatusWin = WM_CreateWindowAsChild ( 0, 0, 800, 25, WM_GetDesktopWindowEx ( 1 ),
            WM_CF_SHOW | WM_CF_HASTRANS | WM_CF_MEMDEV | WM_CF_STAYONTOP, _cbStatus, 0 );


2. В его оконной функции пишу:
CODE

hWin = pMsg -> hWin;

switch ( pMsg->MsgId )
{
case WM_CREATE: // Создание окна
hTimerTime = WM_CreateTimer ( hWin, ID_TIMER_TIME, 1000, 0 );
.............
break;

case WM_DELETE: // Удаление окна
WM_DeleteTimer ( hTimerTime );
break;

case WM_TIMER: // Таймер обновления окна
WM_InvalidateWindow ( hWin );
WM_RestartTimer ( pMsg->Data.v, 0 );
break;

case WM_PAINT: // Перерисовка
break;


hTimerTime - либо глобальная, либо локальная с модификатором static.
Идея в следующем - Вы создаёте простое окно, которое сами же и перерисовываете по таймеру в событии WM_PAINT.

Работает и под FreeRTOS, и без неё. от этого вообще ничего не зависит.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 13:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01419 секунд с 7
ELECTRONIX ©2004-2016