In allegato qui c'è un pannello basato sull'esempio di SB. Ho pulito il codice per lasciare solo ciò che è rilevante per la domanda, il codice sorgente è allegato.
Puoi dirmi come colorare l'intestazione e l'area principale, sulla quale agganciamo gli elementi? Sembra che questi oggetti siano nella classe Dialog dei genitori,
private:
//--- dependent controls
CPanel m_white_border; // the "white border" object
CPanel m_background; // the background object
CEdit m_caption; // the window title object
CBmpButton m_button_close; // the "Close" button object
CWndClient m_client_area; // the client area object
E hanno metodi corrispondenti
Ma come faccio a raggiungere correttamente i campi privati?
In allegato qui c'è un pannello basato sull'esempio di SB. Ho pulito il codice per lasciare solo ciò che è rilevante per la domanda, codice sorgente allegato.
Puoi dirmi come colorare l'intestazione e l'area principale, sulla quale agganciamo gli elementi? Sembra che questi oggetti siano nella classe Dialog dei genitori,
E hanno metodi corrispondenti
Ma come faccio a raggiungere correttamente i campi privati?
Avete una lista di metodi per accedere a questi campi sull'immagine. I metodi sono pubblici?
Artyom Trishkin: Avete una lista di metodi di accesso a questi campi sull'immagine. I metodi sono pubblici?
C'è un metodo pubblico CDialog::CreateCaption(), CreateClientArea(). I pannelli sono creati lì e i loro colori sono impostati attraverso CONTROLS_DIALOG_COLOR_BG e CONTROLS_DIALOG_COLOR_CLIENT_BG.
Ho provato a sovrascrivere queste variabili nella mia classe attraverso undef e definirle di nuovo. E poi eseguire nuovamente i metodi Create..., ma poiché gli oggetti sono già stati creati viene restituito un errore 4200 - l'oggetto esiste già.
C'è un metodo pubblico CDialog::CreateCaption(), CreateClientArea(). I pannelli sono creati lì e i loro colori sono impostati attraverso CONTROLS_DIALOG_COLOR_BG e CONTROLS_DIALOG_COLOR_CLIENT_BG.
Ho provato a sovrascrivere queste variabili nella mia classe attraverso undef e definirle di nuovo. E poi eseguire nuovamente i metodi Create..., ma poiché gli oggetti sono già stati creati viene restituito un errore 4200 - l'oggetto esiste già.
Aggiunto:
L'errore 4200 è quando ho controllato in MT4.
Onestamente non ho mai usato queste risorse di SB. Ma cosa vi impedisce di guardare in SB dove, con quali metodi, sono fissati i colori. Quello che hai mostrato nell'annuncio:
private:
//--- dependent controls
CPanel m_white_border; // the "white border" object
CPanel m_background; // the background object
CEdit m_caption; // the window title object
CBmpButton m_button_close; // the "Close" button object
CWndClient m_client_area; // the client area object
- sono nomi di oggetti - classi CPanel, CEdit, CBmpButton e CWndClient.
E avete bisogno di trovare i nomi dei membri di queste classi dove sono memorizzati i colori e usare quali metodi possono essere inizializzati o modificati.
E probabilmente dovrete inizializzarli prima e poi costruire l'oggetto stesso.
Grazie, penso di aver capito.
E come si esegue il debugger sui dati storici?
Felice di aiutare.
Il debug è possibile solo sulla storia in MT5.
Felice di aiutare.
Il debug è possibile solo sulla storia in MT5.
Ho capito che MT5 ha un linguaggio di programmazione diverso. Il mio codice non funzionerà lì?
Ho capito che MT5 ha un linguaggio di programmazione diverso. Il mio codice non funzionerà lì?
In allegato qui c'è un pannello basato sull'esempio di SB. Ho pulito il codice per lasciare solo ciò che è rilevante per la domanda, il codice sorgente è allegato.
Puoi dirmi come colorare l'intestazione e l'area principale, sulla quale agganciamo gli elementi?
Sembra che questi oggetti siano nella classe Dialog dei genitori,
E hanno metodi corrispondenti
Ma come faccio a raggiungere correttamente i campi privati?
In allegato qui c'è un pannello basato sull'esempio di SB. Ho pulito il codice per lasciare solo ciò che è rilevante per la domanda, codice sorgente allegato.
Puoi dirmi come colorare l'intestazione e l'area principale, sulla quale agganciamo gli elementi?
Sembra che questi oggetti siano nella classe Dialog dei genitori,
E hanno metodi corrispondenti
Ma come faccio a raggiungere correttamente i campi privati?
Avete una lista di metodi per accedere a questi campi sull'immagine. I metodi sono pubblici?
No. L'ho digitato in CDialog nel costruttore, l'ho catturato, poi ho rimesso tutto
Avete una lista di metodi di accesso a questi campi sull'immagine. I metodi sono pubblici?
C'è un metodo pubblico CDialog::CreateCaption(), CreateClientArea(). I pannelli sono creati lì e i loro colori sono impostati attraverso CONTROLS_DIALOG_COLOR_BG e CONTROLS_DIALOG_COLOR_CLIENT_BG.
Ho provato a sovrascrivere queste variabili nella mia classe attraverso undef e definirle di nuovo. E poi eseguire nuovamente i metodi Create..., ma poiché gli oggetti sono già stati creati viene restituito un errore 4200 - l'oggetto esiste già.
Aggiunto:
L'errore 4200 è quando ho controllato in MT4.
C'è un metodo pubblico CDialog::CreateCaption(), CreateClientArea(). I pannelli sono creati lì e i loro colori sono impostati attraverso CONTROLS_DIALOG_COLOR_BG e CONTROLS_DIALOG_COLOR_CLIENT_BG.
Ho provato a sovrascrivere queste variabili nella mia classe attraverso undef e definirle di nuovo. E poi eseguire nuovamente i metodi Create..., ma poiché gli oggetti sono già stati creati viene restituito un errore 4200 - l'oggetto esiste già.
Aggiunto:
L'errore 4200 è quando ho controllato in MT4.
Onestamente non ho mai usato queste risorse di SB. Ma cosa vi impedisce di guardare in SB dove, con quali metodi, sono fissati i colori. Quello che hai mostrato nell'annuncio:
- sono nomi di oggetti - classi CPanel, CEdit, CBmpButton e CWndClient.
E avete bisogno di trovare i nomi dei membri di queste classi dove sono memorizzati i colori e usare quali metodi possono essere inizializzati o modificati.
E probabilmente dovrete inizializzarli prima e poi costruire l'oggetto stesso.
Ciao!
Quando si compila dà fuori"undeclared identifier" (identificatore non dichiarato)
Ho cercato e ricercato, ma non ho capito cosa dovrei fare per risolvere l'errore
Aiuto, per favore!