C++ - MFC-add-combo-box die string-Element aus einer widget-ID
Ich habe ein Kombinationsfeld in dem gui-editor in MSVC 2010 pro in meinem MFC-Projekt. Ich habe eine Liste von strings bin ich grabben von einer externen Quelle und wollen fügen Sie Sie zu meine combo-box. Ich habe gesucht, für eine Weile, und jeder Beitrag zu suggerieren scheint, ich muss an der CComboBox Klasse, allerdings habe ich keine Idee, wie man die class-variable aus dem resource-ID der combobox-element im gui-editor.
In der Zusammenfassung, wie füge ich einen string an meine combo-box, entweder über ein makro (wie CB_ADDSTRING(RESOURCE_ID, "my string");
) oder mit CComboBOx (so etwas wie CComboBox::GetObject(RESOURCE_ID)->AddString("blah");
).
Ich nicht viel tun, win32-api/mfc-Programmierung, und begann einfach zu hantieren mit ihm.
Du musst angemeldet sein, um einen Kommentar abzugeben.
satuon s Antwort ist die win32-Weg, Dinge zu tun. Wenn Sie möchten, zu gehen, eine mehr, MFC-route, dann Lesen Sie weiter.
Wenn es nur ein paar, können Sie Ihre strings direkt in den Ressourcen-editor mit dem "Daten" - Eigenschaft der combo.
Wenn nicht, dann brauchen Sie, um halten Sie Ihre combo zur Laufzeit. Der Ressourcen-editor wird Euch gegeben habe, combo eine resource-id (z.B.
IDC_COMBO1
), so können Sie es verwenden, nehmen Sie die combo von innerhalb der dialog-Klasse:Hinweis: Sie haben zu werfen, um
CComboBox
, weilGetDlgItem()
können verwendet werden, um jede Art von untergeordneten Steuerelemente.Wenn Sie gehen, um mit der combo sehr viel, lohnt es sich wahrscheinlich, hinzufügen von ein engagiertes Mitglied, um Ihre dialog-Klasse. Sie können dies tun, indem Sie die Visual Studio-Assistenten.
Wenn Sie jetzt schauen Sie in Ihr .h-Datei, Sie werden sehen, ein neues Mitglied:
MFC-Drähte für Sie in
DoDataExchange()
so brauchen Sie nicht zu kümmern. Jetzt können Sie dieses Mitglied überall, um Sie zu manipulieren combo. zB.Wenn Sie nur brauchen, es in einer Stelle können Sie einen temporären Zeiger:
Andernfalls können Sie den Assistenten verwenden, um eine Klasse variable, die zugeordnet werden, um die Kontrolle während der DoDataExchange wie das Dialogfeld erstellt wird.
Können Sie SendDlgItemMessage: