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