MFC Combo-Box Control n'affiche pas la liste complète des éléments lorsque je clique sur le menu déroulant
Je suis codage d'une application dans MSVS 2008, qui a un contrôle zone de liste déroulante qui j'initialise à travers le code comme ci-dessous:
static char* OptionString[4] = {"Opt1",
"Opt2",
"Opt3",
"Opt4"};
BOOL CMyAppDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); //Set big icon
SetIcon(m_hIcon, FALSE); //Set small icon
//TODO: Add extra initialization here
m_Option.AddString(OptionString[0]);
m_Option.AddString(OptionString[1]);
m_Option.AddString(OptionString[2]);
m_Option.AddString(OptionString[3]);
m_Option.SetCurSel(0);
return TRUE; //return TRUE unless you set the focus to a control
}
Dans le code ci-dessus, m_Option
est la variable de Contrôle pour le Contrôle zone de liste déroulante.
Maintenant, quand je build de l'application et cliquez sur la flèche vers le bas, la zone de liste déroulante affiche la première option(depuis que j'ai sélectionné qu'à travers mon code). Mais, si je presse les touches fléchées du clavier, il passe à travers les options de la commande que j'ai inséré, mais jamais qu'il ne montre plus de 1 option dans la boîte. Donc Dans le cas où un utilisateur veut sélectionner option3, il a pour faire défiler les options 1 et 2 !! Mais j'sélectionnez une option à l'aide du clavier, l'gestionnaires d'événements sont déclenchés, je suis vexé par cette attitude est compréhensible.
Je suis énumérant les propriétés de la liste déroulante de la boîte de contrôle en tant que bien que les propriétés qui sont vraies(repos sont mis à false):
- De Type Liste Déroulante
- Barre De Défilement Verticale
- Visible Tabstop
Ce a m'énerve depuis des semaines maintenant. Quelqu'un peut-pls m'éclairer ?
source d'informationauteur TCSGrad
Vous devez vous connecter pour publier un commentaire.
Dans la boîte de dialogue mise en page du concepteur, lors de la conception de la boîte de dialogue, cliquez sur la "flèche vers le bas" sur la zone de liste déroulante. Vous pouvez ensuite faire glisser vers le bas sur le bas de la zone de liste déroulante du contour à l'augmentation de sa hauteur.
Vous avez besoin d'augmenter la hauteur de la chute vers le bas de la zone de liste déroulante dans le concepteur.
Par le concepteur, par défaut, vous pouvez simplement redimensionner la largeur de la zone de liste déroulante. Si vous souhaitez redimensionner la zone de Liste Déroulante en hauteur, vous devez cliquer sur la flèche de menu déroulant sur la droite, puis vous serez en mesure de redimensionner la tombée de contrôler la hauteur. Cela semble si facile, mais si personne ne vous dit qu'il est tout sauf intuitive.
Espère que vous avez compris mon point.
Une autre méthode pour régler la taille de la liste déroulante de la zone de liste déroulante à la main éditer le fichier rc.
Vous pouvez définir 5e paramètre qui est responsable de la hauteur de la chute vers le bas (72 dans cet exemple).
J'ai aussi été subi par ce problème et j'ai enfin trouvé la solution pour mes applications MFC. Le problème est que je n'ai pas appliqué le manifeste de la version 6 de mes applications. Pour résoudre ce problème, j'ai ajouté le code pour marquer le manifeste de la manière suivante:
Il a bien fonctionné.
Vous pouvez consulter le lien [ici] (http://msdn.microsoft.com/en-us/library/windows/desktop/bb773175%28v=vs.85%29.aspx) pour plus de détails.
Espérons que cela aide.