Контрольная работа: Атомы
TextOut( ps.hdc, 0, 0, szBuffer, lstrlen( szBuffer ) );
EndPaint( hWnd, &ps );
}
break ;
case WM_COMMAND :
switch( LOWORD( wParam ) )
{
case IDM_ADD:
// Ввестиатом.
AddAtom( szAtom );
InvalidateRect( hWnd, NULL, TRUE );
break;
caseIDM_DELETE:
// Найти и удалить атом.
if ( FindAtom( szAtom ) )
DeleteAtom( FindAtom( szAtom ) );
InvalidateRect( hWnd, NULL, TRUE );
break;
Целочисленные атомы
В Windows 9.x и WindowsNT/2000 поддерживаются также средства сохранения строк с десятичными числами в таблицах атомов. Атомы, которые представляют собой числовые строки, называются целочисленными (целыми) атомами.
Допустимыми являются только значения из диапазона 1-49151 (1-BFFFh).
Чтобы определить, может ли целое значение быть размещено в таблице атомов, его следует проверить, сравнив с константой MAXINATOM. Еще одна макрокоманда MAKEINATOM, преобразует число в целый атом.
В листинге показано, каким образом используются целые атомы. Следует заметить, что строка, сохраняемая в таблице атомов, на самом деле будет содержать цифры десятичного представления целого числа, которому предшествует знак "решетки".
Листинг. Применение целых атомов
charszStoredString[6];
WORD wValue = 1000;
ATOM aValue = AddAtom( MAKEINTATOM( wValue ) ) ;
// Значение атома равно 100.
// Строка будет содержать число "#1000".