Использование особенностей работы пакета 3D Studio, страница 2

 Создать *.htm файл WEB-странички с анимационным изображением gif файла

Технология создания анимационных файлов в Ulead GIF Animatotor

1.  Создание новой анимации. Запустите программу Ulead GIF Animator. Сразу после запуска программа будет содержать пустую форму для анимации.

Добавление рисунков. Нажмите кнопку Add Image, находящуюся на панели инструментов, и выберите рисунок *.jpg. Нажмите на клавише Ok. Данный рисунок будет добавлен к анимации. Сделайте его активным, щелкнув на слое "1:*.jpg" на панели слоев. В панели атрибутов в поле Local Palette установите галочку (использование локальной, собственной палитры).

7. Теперь создадим .htm файл Web –странички с анимационным изобра-жением gif файла.

Для этого напишем следующий текст программы:

<html>

<BODY bgcolor="#99ffff"

link="red"       

alink="red"      

vlink="red">   

<!--<font color=red> Эткало И.В.,АП-39а </font></centre>-->

<a href="web.htm">

<img src="coolbabyopt.gif" border="10"  alt="Dancing Baby Go to home" align="right" ></a>

<br><br>

<centre>

<table align="center">

<tr><td>

<font size=5 color=magenta><centre> Эткало Игорь Валериевич, гр.АП-39а

</centre>

 </font>

</centre></td>

</tr>

</table>

</body>


</html>

4. Программа вывода в windows –окно замкнутых дуг. Использовать различные типы заливки.

Операционная оболочка Windows — это разработанная фирмой Microsoft надстройка над операционной системой DOS, обеспечиваю­щая большое количество возможностей и удобств для пользователей и программистов. Широчайшее распространение Windows сделало ее фактическим стандартом для IBM PC-совместимых компьютеров: по­давляющее большинство пользователей таких компьютеров работают в Windows, поэтому в последнее время практически все новые програм­мы разрабатываются именно для их эксплуатации в среде Windows.

Напишем нашу программу используя Microsoft Visual Studio 6.0.

WndProc – функция обратного вызова. Эту функцию обратного вызова сами никогда не вызываем, а передаем адрес этой подпрограммы в Windows, которая вызывает эту программу обратно в соответствующие моменты. WndProc обрабатывает сообщения, предназначенные для основного окна программы.

После того как программа регистрирует свой оконный класс, нужно создать элемент этого класса для использования его в качестве основного окна программы. Выполнить это можно вызвав функ­цию Windows — CreateWindow. Только первая программная инстанция  ре­гистрирует оконный класс, но каждая программная инстанция создает свой собственный элемент окна этого класса.

В случае успешного завершения CreateWindow возвращает дескриптор только что созданному оконному эле­менту.

Текст программы:

   #include <windows.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPreInst,LPSTR lpszCmdLine,int nCmdShow)

{

 HWND hWnd;

 MSG lpMsg;

 WNDCLASSEX wcApp;

 static char szProgName[]="Типа... дуги.";

 static char szApplName[]="Это типа...ну-у...ДУГИ";

 if (!hPreInst)

   {

   wcApp.lpszClassName=szProgName;

   wcApp.lpfnWndProc = WndProc;

     wcApp.hInstance    =hInst;

   wcApp.lpfnWndProc  =WndProc;

   wcApp.hCursor      =LoadCursor(NULL,IDC_ARROW);

   wcApp.hIconSm = LoadIcon(NULL,IDI_QUESTION);

   wcApp.hIcon       =LoadIcon(NULL,IDI_APPLICATION);

   wcApp.lpszMenuName =szApplName;//NULL;

   wcApp.hbrBackground=GetStockObject(1);

   wcApp.style        =CS_DBLCLKS | CS_SAVEBITS;

   wcApp.cbClsExtra   =0;

   wcApp.cbWndExtra   =0;

   wcApp.cbSize = sizeof(wcApp);

   RegisterClassEx (&wcApp);  

 }

 hWnd=CreateWindowEx(WS_EX_OVERLAPPEDWINDOW,szProgName,szApplName,WS_OVERLAPPEDWINDOW,

                   CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,

                                         (HWND)NULL,(HMENU)NULL,(HANDLE)hInst,(LPSTR)NULL);

 ShowWindow(hWnd,nCmdShow);

 UpdateWindow(hWnd);

 while (GetMessage(&lpMsg,NULL,0,0))

   {

    TranslateMessage(&lpMsg);

  DispatchMessage(&lpMsg);

   }

 return(lpMsg.wParam);

}

LRESULT CALLBACK WndProc (HWND hWnd,UINT messg,WPARAM wParam,LPARAM lParam)

{

 HDC hdc;

 PAINTSTRUCT ps;

 HPEN hPen;

 HBRUSH hBrush;

 int i;

 switch (messg)

 {

   case WM_PAINT:

        hdc=BeginPaint(hWnd,&ps);

              for (i=0;i<7;i++)

              {

                          hPen=CreatePen(0,1,RGB(0,0,0));

                          SelectObject(hdc,hPen);

                          Chord (hdc,100,100+i*40,300,50+i*40,400,100+i*40,100,10+i*40);

               hBrush = CreateSolidBrush (RGB(rand(),rand(),rand()));

                          //         hBrush=CreateHatchBrush(i,RGB(rand(),rand(),rand()));

  SelectObject(hdc,hBrush);

              }

            EndPaint(hWnd,NULL);

              break;

   case WM_DESTROY:PostQuitMessage(0);

        break;

   default:return(DefWindowProc(hWnd,messg,wParam,lParam));

  }

  return(0);


}