Составители:
/*INITIALIZE APP - регистрация двух классов и создание окон. */
BOOL InitializeApp ( void )
{
…
// Пометить исходное состояние каждого потока как SUSPENDED
// сразу при их создании.
for( iCount = 0; iCount < 4; iCount++ )
{
iState[iCount] = SUSPENDED;
}
// Задать первичному потоку более высокий приоритет,
// что позволит ускорить ввод/вывод команд пользователем.
SetThreadPriority( GetCurrentThread(),
THREAD_PRIORITY_ABOVE_NORMAL );
// Создать все окна.
return( CreateWindows( ) );
}
Вызов функции SetThreadPriority приводит к увеличению приоритета
первичного потока. Если все вторичные потоки будут иметь такой же
приоритет, как и первичный, то реакция на выбор команд меню будет очень
медленной. Убедиться в этом, запустив программу и повысив приоритет
вторичных потоков.
Функция CreateWindow создает не только основное окно, но и список, а
также набор дочерних окон для потоков.
/* CREATE WINDOWS - создать главное окно, окно списка и четыре дочерних
окна */
BOOL CreateWindows ( void )
{
char szAppName[MAX_BUFFER] ;
char szTitle[MAX_BUFFER] ;
char szThread[MAX_BUFFER];
HMENU hMenu;
int iCount;
// загрузка соответствующих строк
LoadString( hInst, IDS_APPNAME, szAppName, sizeof(szAppName));
LoadString( hInst, IDS_TITLE, szTitle, sizeof(szTitle));
LoadString( hInst, IDS_THREAD, szThread, sizeof(szThread));
// создать родительское окно
hMenu = LoadMenu( hInst, MAKEINTRESOURCE(MENU_MAIN) );
hwndParent = CreateWindow( szAppName, szTitle,
WS_OVERLAPPEDWINDOW |
WS_CLIPCHILDREN,
CW_USEDEFAULT, CW_USEDEFAULT,
6
/*INITIALIZE APP - регистрация двух классов и создание окон. */ BOOL InitializeApp ( void ) { … // Пометить исходное состояние каждого потока как SUSPENDED // сразу при их создании. for( iCount = 0; iCount < 4; iCount++ ) { iState[iCount] = SUSPENDED; } // Задать первичному потоку более высокий приоритет, // что позволит ускорить ввод/вывод команд пользователем. SetThreadPriority( GetCurrentThread(), THREAD_PRIORITY_ABOVE_NORMAL ); // Создать все окна. return( CreateWindows( ) ); } Вызов функции SetThreadPriority приводит к увеличению приоритета первичного потока. Если все вторичные потоки будут иметь такой же приоритет, как и первичный, то реакция на выбор команд меню будет очень медленной. Убедиться в этом, запустив программу и повысив приоритет вторичных потоков. Функция CreateWindow создает не только основное окно, но и список, а также набор дочерних окон для потоков. /* CREATE WINDOWS - создать главное окно, окно списка и четыре дочерних окна */ BOOL CreateWindows ( void ) { char szAppName[MAX_BUFFER] ; char szTitle[MAX_BUFFER] ; char szThread[MAX_BUFFER]; HMENU hMenu; int iCount; // загрузка соответствующих строк LoadString( hInst, IDS_APPNAME, szAppName, sizeof(szAppName)); LoadString( hInst, IDS_TITLE, szTitle, sizeof(szTitle)); LoadString( hInst, IDS_THREAD, szThread, sizeof(szThread)); // создать родительское окно hMenu = LoadMenu( hInst, MAKEINTRESOURCE(MENU_MAIN) ); hwndParent = CreateWindow( szAppName, szTitle, WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN, CW_USEDEFAULT, CW_USEDEFAULT, 6
Страницы
- « первая
- ‹ предыдущая
- …
- 4
- 5
- 6
- 7
- 8
- …
- следующая ›
- последняя »