Обсуждение статьи "Графические интерфейсы X: Элемент "Многострочное текстовое поле ввода" (build 8)" - страница 3

 
Carl Schreiber:

Загляните на страницу автора:

Там есть новая версия текстового поля и два общих обновления общего кода и две еще не переведенные статьи, может быть, там что-то есть, в противном случае напишите ему личное письмо, желательно на немецком и переводы на английский и русский.


Очень хорошо Карл!

Отличный совет .... действительно включен в следующую версию. Я перевел его.

Вероятно, мне придется чаще просматривать авторов.

Функция, которую вы ищете, это CTextBox::ActivateTextBox()

Приветствую, Кристиан

Nach dem Doppelklick auf die Tabellenzelle erscheint das Eingabefeld,
 aber um einen weiteren Klick auszuschließen,
 um das Eingabefeld zu aktivieren,
 wurde eine zusätzliche öffentliche Methode CTextBox :: ActivateTextBox () benötigt. 
Sein Anruf simuliert einen Klick auf das Eingabefeld.
 Um dies zu tun, rufen Sie einfach die Methode CTextBox :: OnClickTextBox () auf und übergeben Sie den Namen des Grafikobjekts des Elements. 
Die Auswahl des Textes erfolgt bereits bei dieser Methode
 

Здравствуйте.

Не находите, что метод CTimeCounter::CheckTimeCounter(void) абсолютно неправильно реализован. В смысле где там привязка ко времени-то или секундам... Просто числа сравниваются. Оттого он у меня и срабатывает непрерывно..

GetTickCount() должен где-то использоваться.
 

Не могу понять зачем мы обращаемся к методу класса

//--- Если массив пуст, выйдем
   if(CWndContainer::WindowsTotal()<1)
      return;

Если текущий класс наследуется от 

CWndContainer

Какой смысл ?

 

Зачем так все разбивать ?

protected:
   CChart            m_chart;
   //--- Идентификатор и номер окна графика
   long              m_chart_id;
   int               m_subwin;
   //--- Имя программы
   string            m_program_name;
   //--- Короткое имя индикатора
   string            m_indicator_shortname;
   //---
private:
   //--- Параметры событий
   int               m_id;
   long              m_lparam;
   double            m_dparam;
   string            m_sparam;
   //---
protected:
                     CWndEvents(void);
                    ~CWndEvents(void);
   //--- Виртуальный обработчик события графика
   virtual void      OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam) {}
   //--- Таймер
   void              OnTimerEvent(void);
   //---
public:
   //--- Обработчики событий графика
   void              ChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam);
private:
   void              ChartEventCustom(void);
   void              ChartEventClick(void);
   void              ChartEventMouseMove(void);
   void              ChartEventObjectClick(void);
   void              ChartEventEndEdit(void);
   void              ChartEventChartChange(void);
   //--- Проверка событий в элементах управления
   void              CheckElementsEvents(void);
   //--- Определение номера подокна
   void              DetermineSubwindow(void);
   //--- Проверка событий элементов управления
   void              CheckSubwindowNumber(void);
   //--- Инициализация параметров событий
   void              InitChartEventsParams(const int id,const long lparam,const double dparam,const string sparam);
   //--- Перемещение окна
   void              MovingWindow(void);
   //--- Проверка событий всех элементов по таймеру
   void              CheckElementsEventsTimer(void);
   //---
protected:
   //--- Удаление интерфейса
   void              Destroy(void);

Я имею ввиду зачем плодить массу 

public:

protected:
private:

Почему нельзя один раз обьявлять ?