2010-03-08 7 views
1

Je suis en train de concevoir une application MFC dans laquelle j'aimerais avoir une grille avec 2 colonnes: à la fois éditable dans laquelle l'utilisateur va entrer des données et l'application sera avertie à ce sujet. Le nombre de lignes peut être augmenté/diminué par l'utilisateur comme il veut - Quel serait le contrôle MFC idéal à utiliser pour ce type d'exigence?Est-il possible de modifier les données à l'aide de CListCtrl? Dans le cas contraire, quelqu'un peut-il suggérer un autre contrôle dans MFC?

C'est la première fois la conception d'une application MFC, donc ne vous dérange pas si cela semble trop noobish :)

Répondre

3

Ce n'est pas une question noobish. En fait, vous avez rencontré un problème qui bogue tous les développeurs MFC depuis 15 ans: La bibliothèque MFC n'a pas de contrôle de grille intégré. Et une sorte de contrôle de la grille est ce que vous cherchez, je suppose. Pour autant que je sache, il n'est pas possible d'éditer deux colonnes dans un CListCtrl. Seule la première colonne, "Label", peut être éditée. Pour un contrôle de grille, vous devez rechercher les outils tiers appropriés qui peuvent être ajoutés à vos projets, par exemple en tant que contrôles ActiveX. (Je me souviens que l'ancien Visual Studio 6 était livré avec un "MS FlexGrid" que vous pouviez ajouter avec la galerie de composants au projet, mais je n'ai jamais travaillé avec, donc je ne sais pas si c'est un bon choix. . peut-être assez pour votre objectif) la plupart des contrôles de grille tiers exigent des frais de licence, mais voici une (grille assez puissant) gratuitement (au moins sans frais, mais pas d'une licence):

http://www.codeproject.com/KB/miscctrl/gridctrl.aspx

(ou google par "MFC Grid Control" ou quelque chose comme ça.Je pense qu'il y aura plus de grilles libres.)

+2

Un autre contrôle de grille MFC gratuit: http://www.codeproject.com/KB/MFC/UltimateGrid.aspx – adam

+0

Le problème est que je développe un outil interne à utiliser au sein de l'entreprise - Je ne pense pas que les gens seront satisfaits d'un outil utilisant du code tiers, car cela nécessiterait toutes sortes de problèmes de licence. Si ce n'est pas le cas, il est absolument nécessaire - et ce n'est pas le cas, mais cela rendra les choses beaucoup plus intuitives pour les utilisateurs de l'application. Merci pour la réponse - m'a sauvé le temps de rechercher quelque chose qui n'existe pas dans MSVC 8.0 !! – TCSGrad

+0

La licence pour les grilles reliées dans ma réponse et dans le commentaire d'adam est très généreuse ("The Code Projet Open License (CPOL)": ​​http://www.codeproject.com/info/cpol10.aspx). En fait, je ne vois pas de restrictions sérieuses, ni dans les projets commerciaux, ni internes ni open source. Il n'est même pas nécessaire de dire à vos utilisateurs que vous utilisez ces outils tiers. Je l'installerais avec votre application (dans le cadre de votre application) et c'est tout. – Slauma