Нижеследующая функция создает аниматор в диалоговом окне. Аниматор устанавливается ниже заданного органа управления, а размеры элемента управления мультипликации основываются на размерах кадра клипа AVI.
Демонстрационный пример
// Функция CreateAnimationCtrl - создает аниматор, позиционирует его ниже // заданного элемента управления в диалоговом окне и открывает клип AVI в // нем. // Возвращает дескриптор аниматора. // hwndDlg - дескриптор диалогового окна. // nIDCtl - идентификатор органа управления, ниже которого должен быть // расположен аниматор. // Константы: // IDC_ANIMATE - идентификатор аниматора // CX_FRAME, CY_FRAME - ширина и высота кадра в клипе AVI HWND CreateAnimationCtrl(HWND hwndDlg, int nIDCtl) { HWND hwndAnim = NULL;RECT rc;POINT pt; // Создаем аниматор. hwndAnim = Animate_Create(hwndDlg, IDC_ANIMATE,WS_BORDER | WS_CHILD, g_hinst); // Получаем экранные координаты заданной кнопки управления. GetWindowRect(GetDlgItem(hwndDlg, nIDCtl), &rc); // Преобразуем координаты нижнего левого угла в рабочие координаты. pt.x = rc.left;pt.y = rc.bottom;ScreenToClient(hwndDlg, &pt); // Располагаем аниматор ниже кнопки Стоп (Stop). SetWindowPos(hwndAnim, 0, pt.x, pt.y + 20,CX_FRAME, CY_FRAME,SWP_NOZORDER | SWP_DRAWFRAME); // Открываем клип AVI и показываем аниматор. Animate_Open(hwndAnim, "SEARCH.AVI");ShowWindow(hwndAnim, SW_SHOW);return hwndAnim; } |