2010-03-25 5 views
2

J'ai une application qui utilise plusieurs classes CView (en réalité CScrollView) pour afficher les données du document. Pour une vue particulière, je veux ajouter une boîte d'édition fly-out pour ajouter des notes. C'est-à-dire, vous verriez un onglet au bas de la fenêtre étiqueté "Page Notes", et en cliquant sur cela ferait apparaître la boîte d'édition. Cliquer sur l'onglet alors que la boîte d'édition est visible le ramènerait juste à l'onglet.Flotter un contrôle sur un CView

Je pensais pouvoir utiliser un seul onglet CTabCtrl en maintenant une boîte d'édition et juste positionner de sorte que seul l'onglet soit visible initialement. Capturez la notification de clic sur l'onglet et déplacez le contrôle entier, avec la zone d'édition, dans la vue. En cliquant à nouveau sur l'onglet, vous le déplacerez pour que seul l'onglet soit visible.

L'hébergement du CTabCtrl sur le CView est très bien, et je peux le positionner correctement. Le problème est que si la vue est défilée, le contrôle de tabulation est défilé avec elle, alors que j'en ai besoin pour "flotter" sur la vue et ne pas être affecté par un défilement. Je peux le remettre en place après le parchemin, mais le scintillement est disgracieux.

Existe-t-il un moyen simple d'accomplir l'effet "flottant"? Je souhaite principalement que l'onglet soit incorporé dans la vue pour la maintenance, car il s'agit de la seule classe d'affichage parmi les plusieurs en cours d'utilisation qui nécessite la fonctionnalité "Page Notes".

Est-ce que je devrais simplement boucler et mettre l'onglet dans la fenêtre parent de la vue à la place? Je sais que cela ne sera pas affecté par le défilement, mais j'aime l'idée de garder l'onglet dans le cadre de la vue si possible.

+0

Si ce n'est pas censé défiler, ne devrait-il pas être "en dehors" de la vue déroulante, comme vous l'avez dit? Peut-être, vous avez besoin de diviser votre vue en deux vues? – Jaywalker

Répondre

1

Il semble que l'onglet fonctionne comme un bouton. Vous cliquez sur l'onglet et une fenêtre d'édition apparaît. Vous pouvez utiliser une boîte de dialogue non modale. Sélectionnez la "Note de page" et la boîte de dialogue non modulable apparaîtra pour éditer vos notes vous permettant de faire défiler votre vue sous la boîte de dialogue.

+0

Je pense que c'est une bonne méthode. – Brent81

Questions connexes