Функция обратного вызова CALLBACKPROCPLACEMENT

Автор TheHZ, 13.10.15, 11:49:15

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

TheHZ

Всем привет!)
В step4 нашел функцию обратного вызова CALLBACKPROCPLACEMENT, все с ней хорошо но переданную функцию ( а меня их несколько десятков) отрисовывает один раз, потом все данные о ней пропадают, возможно ли сделать непрерывный ввод, пока не нажата кнопка стоп, Например сохранять во что-то переданный рисунок в эту функцию...

public int CALLBACKPROCPLACEMENT(int comm,
         ref double x, ref double y,
         ref double ang,
         [MarshalAs(UnmanagedType.LPStruct)] object rInfo,
         [MarshalAs(UnmanagedType.LPStruct)] object rPhan,
         int dynamic)
      {
         ksRequestInfo info = (ksRequestInfo)rInfo;
         ksPhantom phan = (ksPhantom)rPhan;

         if (info != null && phan != null)
         {
            phan.phantom = 1;
            ksType1 t1 = (ksType1)phan.GetPhantomParam();
            switch (comm)
            {
               case 1:
               case 2:
                  type = comm;
                  break;
               case -1: // Поставить в модель
                  {
                     doc.ksMoveObj(t1.gr, x, y);
                     // В отличие от Cursor угол приходит в виде параметра функции
                     if (Math.Abs(ang) > 0.001)
                        doc.ksRotateObj(t1.gr, x, y, ang);
                     doc.ksStoreTmpGroup(t1.gr);
                     // Поставить временную группу в вид
                     doc.ksClearGroup(t1.gr, true);
                     break;
                  }
            }

            
            t1.gr = doc.ksNewGroup(1); // Временная группа
                                //КАК Я ПОНЯЛ СЮДА НАДО КАК-ТО ПЕРЕДАТЬ СОХРАНЕНЫЙ МАКЕТ(ПАРАМЕТРЫ) ТОГО ЧТО НУЖНО                    ОТРИСОВАТЬ

            doc.ksEndGroup();
         }

         return 1;
      }

Так зациклите вызов функции, пока кнопку не нажмут.
+ Благодарностей: 1