Операционные системы. Марапулец Ю.В. - 10 стр.

UptoLike

Составители: 

// Эта пауза значительно ускоряет процесс обновления содержимого экрана.
for( iCount = 0; iCount < 4; iCount++ )
{
if ( iState[iCount] == ACTIVE )
SuspendThread ( hThread[iCount] );
}
// Размещает список в верхней четверти главного окна.
MoveWindow( hwndList, 0, 0, cxClient, cyClient / 4, TRUE );
// Размещает четыре дочерних окна в трех нижних четвертях
// главного окна.
// Левая граница первого окна имеет координату 'х', равную 0.
MoveWindow ( hwndChild[0], 0, cyClient /4-1, cxClient /4 + 1,
cyClient, TRUE );
for( iCount = 1; iCount < 4; iCount++ )
{
MoveWindow( hwndChild[iCount], (iCount * cxClient) / 4,
cyClient /4-1, cxClient / 4 +1, cyClient, TRUE );
}
// Вводит в список строковые значения, заданные по
// умолчанию, и выполняет инициализацию.
// Начальное число прямоугольников равно 0.
for( iCount = 0; iCount < 4; iCount++ )
{
iRectCount[iCount] = 0;
ListBox_AddString( hwndList, szText );
}
ListBox_SetCurSel(hwndList, 0);
// Возобновляет выполнение потоков, которые были приостановлены
// на время обновления окна.
for( iCount = 0; iCount < 4; iCount++ )
{
if( iState[iCount] == ACTIVE)
{
ResumeThread( hThread[iCount] );
}
}
return;
}
Обновление окна списка по сообщениям таймера - решение далеко не
идеальное. Гораздо целесообразнее, чтобы этот процесс инициировался теми
операциями, которые приводят к изменению исходных данных. Однако
применение таймера можно считать простейшим способом выполнения
поставленной задачи.
10
// Эта пауза значительно ускоряет процесс обновления содержимого экрана.
       for( iCount = 0; iCount < 4; iCount++ )
       {
              if ( iState[iCount] == ACTIVE )
                      SuspendThread ( hThread[iCount] );
       }
              // Размещает список в верхней четверти главного окна.
       MoveWindow( hwndList, 0, 0, cxClient, cyClient / 4, TRUE );
              // Размещает четыре дочерних окна в трех нижних четвертях
              // главного окна.
              // Левая граница первого окна имеет координату 'х', равную 0.
       MoveWindow ( hwndChild[0], 0, cyClient /4-1, cxClient /4 + 1,
                      cyClient, TRUE );
       for( iCount = 1; iCount < 4; iCount++ )
       {
              MoveWindow( hwndChild[iCount], (iCount * cxClient) / 4,
                            cyClient /4-1, cxClient / 4 +1, cyClient, TRUE );
       }
              // Вводит в список строковые значения, заданные по
              // умолчанию, и выполняет инициализацию.
              // Начальное число прямоугольников равно 0.
       for( iCount = 0; iCount < 4; iCount++ )
       {
              iRectCount[iCount] = 0;
              ListBox_AddString( hwndList, szText );
       }
       ListBox_SetCurSel(hwndList, 0);
       // Возобновляет выполнение потоков, которые были приостановлены
       // на время обновления окна.
       for( iCount = 0; iCount < 4; iCount++ )
       {
              if( iState[iCount] == ACTIVE)
              {
                      ResumeThread( hThread[iCount] );
              }
       }
       return;
}
       Обновление окна списка по сообщениям таймера - решение далеко не
идеальное. Гораздо целесообразнее, чтобы этот процесс инициировался теми
операциями, которые приводят к изменению исходных данных. Однако
применение таймера можно считать простейшим способом выполнения
поставленной задачи.


                                     10