Existe-t-il un moyen de bloquer le défilement du graphique lorsqu'un bouton de la souris est enfoncé dans un CAppDialog ouvert ?
Maintenant, par exemple, si vous cliquez sur le bouton CB dans la boîte de dialogue et que vous maintenez le bouton de la souris enfoncé tout en déplaçant le curseur (souvent, cela se produit même involontairement, de quelques pixels), le graphique commence à défiler.
La bibliothèque n'a qu'une seule astuce pour cela - l'en-tête CAppDialog, qui crée un objet darg au clic de la souris et entre en mode glisser, dans lequel le graphique lui-même reste en place. Si vous utilisez cette technologie, vous perdez la possibilité de cliquer sur un CButton (ou tout autre contrôleur).
Existe-t-il un moyen de bloquer le défilement du graphique lorsqu'un bouton de la souris est enfoncé dans un CAppDialog ouvert ?
Maintenant, par exemple, si vous cliquez sur le bouton CB à l'intérieur de la boîte de dialogue, que vous maintenez le bouton de la souris enfoncé et que vous déplacez le curseur (souvent, cela se produit même involontairement, de quelques pixels), le graphique commence à défiler.
La bibliothèque n'a qu'une seule astuce pour cela - l'en-tête CAppDialog, qui crée un objet darg au clic de la souris et entre en mode glisser, dans lequel le graphique lui-même reste en place. Si vous utilisez cette technologie, vous perdez la possibilité de cliquer sur un CButton (ou tout autre contrôleur).
Peut-être que quelqu'un a déjà résolu ce problème ?
J'ai utilisé une molette de souris pour écrire un exemple pour quelqu'un et c'est exactement le défilement bloqué avec la molette. Je pense que vous devez modifier certaines des propriétés du graphique
Bugs dans MT5 (build 2361) La principale plainte concernant la sortie inappropriée est "comportement déprécié, l'appel de méthode caché sera désactivé dans une future version du compilateur MQL". La mise en œuvre actuelle revient à tirer un canon sur un moineau. Qu'il soit pertinent ou non, l'avertissement apparaît à chaque appel d'une fonction modèle surchargée dans une classe de base, ce qui, dans certaines situations, entrave considérablement le développement :
class FakeArgument_A1{
} fake_argument_a1;
class FakeArgument_B1 : public FakeArgument_A1{
} fake_argument_b1;
struct Iterator{
char data;
};
class Allocator_traits{
public:
template<typename InputIterator>
void construct_range(const InputIterator &it, int n, const FakeArgument_A1* = NULL){
printf("1");
}
template<typename InputIterator, typename _Tp>
void construct_range(const InputIterator &it, constint n, const _Tp &value, const FakeArgument_A1* = NULL){
printf("2");
}
template<typename OutputIterator, typename InputIterator>
void construct_range(const OutputIterator &it, const InputIterator &_first, const InputIterator &_last, const FakeArgument_A1* = NULL){
printf("3");
}
};
class Allocator : public Allocator_traits{
public:
#ifdef __cplusplus
using Allocator_traits::construct_range;
#endif
template<typename InputIterator>
void construct_range(const InputIterator &it, int n, const FakeArgument_A1* = NULL){
printf("4");
}
};
voidOnStart(){
Iterator it = {};
Allocator alloc;
alloc.construct_range(it, it, it); // Compile Error: False Positive Warnings - deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
alloc.construct_range<Iterator, Iterator>(it, it, it); // Compile Error: 'construct_range' - wrong template parameters count
alloc.construct_range(it, it, it, (FakeArgument_B1*)NULL); // Bypass False Positive Warnings - "deprecated behavior" constint n = 5;
constint value = 0;
alloc.construct_range(it, n, value); // Compile Error: Ok, should be: 'construct_range' - ambiguous call to overloaded function
alloc.construct_range(it, n, value, (FakeArgument_B1*)NULL); // OK. Compile Error: - 'construct_range' - ambiguous call to overloaded function
}
int main(){
OnStart();
return 0;
}
type de ressource inconnu- quelle est la raison de ce bogue ? C'est le deuxième indicateur que je ne peux pas utiliser comme ça.
Chers développeurs !
Ils l'ont réparé récemment, et encore (FORTS, Open, Real, Bild 2340)
Existe-t-il un moyen de bloquer le défilement du graphique lorsqu'un bouton de la souris est enfoncé dans un CAppDialog ouvert ?
Maintenant, par exemple, si vous cliquez sur le bouton CB dans la boîte de dialogue et que vous maintenez le bouton de la souris enfoncé tout en déplaçant le curseur (souvent, cela se produit même involontairement, de quelques pixels), le graphique commence à défiler.
La bibliothèque n'a qu'une seule astuce pour cela - l'en-tête CAppDialog, qui crée un objet darg au clic de la souris et entre en mode glisser, dans lequel le graphique lui-même reste en place. Si vous utilisez cette technologie, vous perdez la possibilité de cliquer sur un CButton (ou tout autre contrôleur).
Quelqu'un a-t-il déjà résolu ce problème ?
Existe-t-il un moyen de bloquer le défilement du graphique lorsqu'un bouton de la souris est enfoncé dans un CAppDialog ouvert ?
Maintenant, par exemple, si vous cliquez sur le bouton CB à l'intérieur de la boîte de dialogue, que vous maintenez le bouton de la souris enfoncé et que vous déplacez le curseur (souvent, cela se produit même involontairement, de quelques pixels), le graphique commence à défiler.
La bibliothèque n'a qu'une seule astuce pour cela - l'en-tête CAppDialog, qui crée un objet darg au clic de la souris et entre en mode glisser, dans lequel le graphique lui-même reste en place. Si vous utilisez cette technologie, vous perdez la possibilité de cliquer sur un CButton (ou tout autre contrôleur).
Peut-être que quelqu'un a déjà résolu ce problème ?
J'ai utilisé une molette de souris pour écrire un exemple pour quelqu'un et c'est exactement le défilement bloqué avec la molette. Je pense que vous devez modifier certaines des propriétés du graphique
Voici tous les exempleshttps://www.mql5.com/ru/docs/constants/chartconstants/charts_samples
CHART_MOUSE_SCROLL et CHART_FOREGROUND vous pouvez essayer de le modifier.
La principale plainte concernant la sortie inappropriée est "comportement déprécié, l'appel de méthode caché sera désactivé dans une future version du compilateur MQL".
La mise en œuvre actuelle revient à tirer un canon sur un moineau.
Qu'il soit pertinent ou non, l'avertissement apparaît à chaque appel d'une fonction modèle surchargée dans une classe de base, ce qui, dans certaines situations, entrave considérablement le développement :
C++ en ligne: https://onlinegdb.com/rkbNuGVSL
DXContextSetSize
Change la taille du cadre d'un contexte graphique créé dans DXContextCreate()
DXContextSetSize
Obtient une taille de cadre d'un contexte graphique créé dans DXContextCreate()
Valeur et référence correctes : DXContextGetSize
Erreur du testeur (ou peut-être que je ne comprends plus rien)