Discussão do artigo "Interfaces Gráficas X: O controle Caixa de Texto Multilinha (build 8)" - página 3

 
Carl Schreiber:

Dê uma olhada na página do autor:

Há uma nova versão do campo de texto e duas atualizações gerais do código geral e dois artigos ainda não traduzidos. Talvez haja algo lá, caso contrário, escreva para ele por e-mail particular, de preferência em alemão e com as traduções em inglês e russo.


Muito bem, Carl!

Ótima dica .... está de fato incluída na próxima versão. Eu o traduzi.

Provavelmente terei que procurar os autores com mais frequência.

A função que você está procurando é CTextBox::ActivateTextBox()

Saudações, Christian

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
 

Olá.

Você descobriu que o método CTimeCounter::CheckTimeCounter(void) está implementado de forma absolutamente incorreta. Quero dizer, onde há vinculação com tempo ou segundos? Ele está apenas comparando números. É por isso que ele funciona continuamente.

GetTickCount() deve ser usado em algum lugar.
 

Não consigo entender por que estamos acessando um método de classe

//--- Se a matriz estiver vazia, saia.
   if(CWndContainer::WindowsTotal()<1)
      return;

Se a classe atual herda de

CWndContainer

Qual é o objetivo?

 

Por que dividir as coisas dessa forma?

protected:
   CChart            m_chart;
   //--- ID e número da janela do gráfico
   long              m_chart_id;
   int               m_subwin;
   //--- Nome do programa
   string            m_program_name;
   //--- Nome abreviado do indicador
   string            m_indicator_shortname;
   //---
private:
   //--- Parâmetros do evento
   int               m_id;
   long              m_lparam;
   double            m_dparam;
   string            m_sparam;
   //---
protected:
                     CWndEvents(void);
                    ~CWndEvents(void);
   //--- Manipulador de eventos de gráfico virtual
   virtual void      OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam) {}
   //--- Temporizador
   void              OnTimerEvent(void);
   //---
public:
   //--- Manipuladores de eventos de gráficos
   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);
   //--- Verificação de eventos em controles
   void              CheckElementsEvents(void);
   //--- Determinar o número da subjanela
   void              DetermineSubwindow(void);
   //--- Verificando os eventos dos controles
   void              CheckSubwindowNumber(void);
   //--- Inicialização dos parâmetros do evento
   void              InitChartEventsParams(const int id,const long lparam,const double dparam,const string sparam);
   //--- Movendo a janela
   void              MovingWindow(void);
   //--- Verificação de eventos de todos os elementos por temporizador
   void              CheckElementsEventsTimer(void);
   //---
protected:
   //--- Excluindo a interface
   void              Destroy(void);

Quero dizer, por que criar uma massa

public:

protected:
private:

Por que você não pode anunciá-lo apenas uma vez?