|
По таймеру рисуются графики данных взятых с порта.
Графики накладываються друг на друга
Таймерная процедура выводит их, вызывая перед этим UpdateWindow(hwnd).
hwnd - хандл окна, но обновление экрана не происходит, хотя существует case WM_PAINT:
который перерисовывает сетку графиков при сворачивании и разв. окна.
//***********************************************
//* оконная процедура для обработки сообщений
//***********************************************
LRESULT CALLBACK WinProc
(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
HDC dc;
case WM_PAINT:
{
dc=BeginPaint(hwnd,&p);
setka(hwnd,GetDC(hwnd),1,1,20,10);
setka(hwnd,GetDC(hwnd),1,1,20,350);
EndPaint(hwnd,&p);
}
break;
//***** создаем ОСНОВНУЮ процедуру таймера *****
void timerproc(HWND hwnd,UINT msg,UINT_PTR idevent,DWORD dwtime)
{
static HDC dc;
dc=GetDC(hwnd);
UpdateWindow(hwnd);
//сохраняем текущие размеры клиентской области
GetClientRect(hwnd, &rect1);
//откроем порт для чтения и запишем в буфер buf_in
port1(hwnd,GetDC(hwnd));
exchange_char_int(buf_in,buf_int_in,1200);
//перепишем маску заголовка в buf_int_prom
for(mm=0;mm<=11;mm++)
{
buf_int_prom[mm]=maska[mm];
}
//выявим заголовок в буфере buf_int_in и получим смещение m
m=zagolovok(hwnd,GetDC(hwnd),buf_int_in,600,buf_int_prom);
//
//перепишем buf_in в buf_out со смещением m
buf_out=buf_in+m+12;
read_file_out_screen(hwnd,GetDC(hwnd),1,1,20,10);
//8 выводим значение скорости
//8.1 перепишем buf_int_in в buf_int_vel со смешением m+12+540 10 байт
buf_int_vel=buf_int_in+m+12+540;
screen_velocity(hwnd,GetDC(hwnd),930,10);
}//**** конец void timerproc(HWND hwnd,UINT msg,UINT_PTR idevent,DWORD dwtime)
E-mail: info@telesys.ru