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

UptoLike

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

CW_USEDEFAULT, CW_USEDEFAULT,
NULL, hMenu, hinst, NULL ) ;
if( ! hwndParent)
{
return( FALSE ) ;
}
// создать окно списка
hwndList = CreateWindow( "LISTBOX", NULL,
WS_BORDER | WS_CHILD | WS_VISIBLE |
LBS_STANDARD | LBS_NOINTEGRALHEIGHT,
0, 0, 0, 0, hwndParent, (HMENU)1, hinst, NULL ) ;
if( ! hwndList )
{
return( FALSE ) ;
}
// создать четыре дочерних окна
for( iCount = 0; iCount < 4; iCount++ )
{
hwndChild[iCount] = CreateWindow( "ThreadClass", NULL,
WS_BORDER | WS_CHILD |
WS_VISIBLE | WS_CLIPCHILDREN,
0, 0, 0, 0, hwndParent, NULL, hInst,
NULL );
if(! hwndChild ) return( FALSE );
}
return( TRUE );
}
3. Рассмотреть функции обработки сообщений.
Большинство функций
обработки сообщений очень просты. Функция Main_OnTimer вызывает
функцию, которая очищает список, генерирует четыре новые информационные
строки и выводит их в окне списка. Функция Main_OnSize приостанавливает
все вторичные потоки, пока программа изменяет положение дочерних окон в
соответствии с новыми размерами родительского окна. В противном случае
работающие потоки будут замедлять выполнение операции отображения.
Функция Main_OnCreate создает потоки, а также исключающий семафор.
/* MAIN_WNDPROC - обработка всех сообщений главного окна */
LRESULT WINAPI Main_WndProc( HWND hWnd, // адрес сообщения
UINT uMessage, // тип сообщения
WPARAM wParam, // содержимое сообщения
LPARAM lParam ) // дополнительное содержимое
{
switch( uMessage )
7
                             CW_USEDEFAULT, CW_USEDEFAULT,
                             NULL, hMenu, hinst, NULL ) ;
     if( ! hwndParent)
     {
            return( FALSE ) ;
     }
            // создать окно списка
     hwndList = CreateWindow( "LISTBOX", NULL,
                               WS_BORDER | WS_CHILD | WS_VISIBLE |
                               LBS_STANDARD | LBS_NOINTEGRALHEIGHT,
                               0, 0, 0, 0, hwndParent, (HMENU)1, hinst, NULL ) ;
     if( ! hwndList )
     {
            return( FALSE ) ;
     }
            // создать четыре дочерних окна
     for( iCount = 0; iCount < 4; iCount++ )
     {
            hwndChild[iCount] = CreateWindow( "ThreadClass", NULL,
                                             WS_BORDER | WS_CHILD |
                                             WS_VISIBLE | WS_CLIPCHILDREN,
                                             0, 0, 0, 0, hwndParent, NULL, hInst,
                                      NULL );
            if(! hwndChild ) return( FALSE );
     }
     return( TRUE );
}

      3. Рассмотреть функции обработки сообщений. Большинство функций
обработки сообщений очень просты. Функция Main_OnTimer вызывает
функцию, которая очищает список, генерирует четыре новые информационные
строки и выводит их в окне списка. Функция Main_OnSize приостанавливает
все вторичные потоки, пока программа изменяет положение дочерних окон в
соответствии с новыми размерами родительского окна. В противном случае
работающие потоки будут замедлять выполнение операции отображения.
Функция Main_OnCreate создает потоки, а также исключающий семафор.

/* MAIN_WNDPROC - обработка всех сообщений главного окна */
LRESULT WINAPI Main_WndProc( HWND hWnd,       // адрес сообщения
                        UINT uMessage,        // тип сообщения
                        WPARAM wParam,        // содержимое сообщения
                        LPARAM lParam ) // дополнительное содержимое
{
     switch( uMessage )

                                        7