Составители:
// Эта пауза значительно ускоряет процесс обновления содержимого экрана.
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
Страницы
- « первая
- ‹ предыдущая
- …
- 8
- 9
- 10
- 11
- 12
- …
- следующая ›
- последняя »
