Je suis en train de concevoir la migration de mon projet .NET/C#/WinForms existant vers une solution plate-forme neutre et l'alternative la plus attrayante que j'ai vue semble être wxWidgets en particulier ma familiarité avec C++ et avec MFC qui semble avoir beaucoup en commun avec elle.Quel est l'équivalent wxWidgets d'un contrôle utilisateur C#
Après avoir bien la documentation et le code d'exemple que je dois clarifier la question suivante:
Est-ce une hypothèse valable que la façon de développer un contrôle utilisateur (par C# terminologie) dans un environnement de WX est de tirer une classe de wxPanel, personnalisez-la et placez-la dans un wxFrame? Si tel est le cas, quelle est la méthode wxFrame à utiliser pour ajouter l'objet wxPanel? La seule méthode relative que j'ai pu trouver était wxWindow :: AddChild mais les états de la documentation sont pour la plupart internes à wxWidgets et ne devraient pas être appelés par le code utilisateur.
Pour éviter toute confusion s'il vous plaît noter que ma question porte sur un contrôle utilisateur et non un contrôle personnalisé (qui est clairement abordée dans la documentation)
Je suis un peu confus à propos de wxSizer :: Add. je peux voir que la signature est ressemble à ceci: wxSizerItem * Ajouter (* wxWindow fenêtre, const wxSizerFlags & drapeaux) Donc, pour ajouter une fenêtre à l'calibreur, il doit d'abord être créé. Mais, le constructeur de wxPanel ressemble à ceci: wxPanel (wxWindow * parent, ... ..) ce qui signifie que la fenêtre parent doit fournir ... Toutes les idées? – JohnP
Vous devez toujours donner la fenêtre parent dans le constructeur. Le mécanisme du sizer fonctionne en parallèle: vous ajoutez tous les contrôles enfants au calibreur (en utilisant 'sizer-> Add') et définissez ensuite la propriété sizer du parent (en utilisant' parent-> SetSizer'). Regardez le (deuxième) lien, il y a un petit exemple. – MartinStettner
Got it ... Je vais aller de l'avant et télécharger le cadre et faire un essai! – JohnP