SetDlgItemText
-
Hi.
Bin ein Anfänger in Sache C++ MFC. (VS6)
Versuche nun schon seit geraumer mit SetDlgItemText einen Text auszugeben.
Habe zwei quellcode dateien.
wenn ich es in der ersten Aufrufe funktioniert es.
da rufe ich es so auf: SetDlgItemText(IDC_Info1, "Test");
wenn ich aus der anderen Datei versuche es aufzurufen, wird nix angezeigt.
Habe hier im Forum verschiedene Lösungswege gefunden, die bei mir aber leider nicht funktioniert haben.
Habe zum Beispiel das probiert:... HWND hDlg; SetDlgItemText(hDlg, IDC_Info1, "Test"); ...
Und mein Dialogfenster wo es angezeigt werden soll heißt IDD_SCHEDTEST_DIALOG.
Aber wenn ich das dann so aufrufen will funktioniert es auch nich:... SetDlgItemText(IDD_SCHEDTEST_DIALOG, IDC_Info1, "Test"); ...
Was mache ich falsch?[/code]
Hier nochmal bißel mehr Code:
#include "Ram.h" ... Text_Ausgabe(); // hier wird die funktion in der anderen Datei aufgerufen //SetDlgItemText(IDC_Info1, "Test"); // <--das funktioniert lokal ...
hier die Ram.h
#include "stdafx.h" #include "SchedTest.h" #include "SchedTestDlg.h" void Text_Ausgabe() { HWND hDlg; SetDlgItemText(hDlg, IDC_Info1, "Test"); }
Hab nun schon rausgefunden, daß ich den Handle auf mein Dialog brauche, aber wie bekomme ich das?
Hab es schon mit HWND GetHWND(); versucht, was mich aber nicht wirklich weitergebracht.
Hoffe ihr könnt mir helfen.
Mfg evo2
-
Tag!
du mußt ja auch hDlg einen Wert zuweisen... sonst gehts natürlich nicht!
hDlg muß der Handle deines Dialoges zugwiesen werden!z.b. in
CDlg::OnInitDialog {
...
// API-Aufruf
::SetDlgItemText(GetSafeHwnd(),IDC_BUTTON1,"Ich bin Button1");
//oder
SetdlgItemText(IDC_BUTTON1,"Ich bin Button1");....
}
-
hmm..hast mich vielleicht nicht richtig verstanden.
Hab bereits ein Textfeld gezeichnet. Das heißt ID_Info1.
Und in dem, will ich aus der Ram.h den Text ändern bzw überhaupt erstmal einen Anzeigen lassen.In der normalen cpp ist das ja kein Problem. Nur aus einer anderen Datei raus geht es nicht.
Wenn ich das: SetDlgItemText(IDC_Info1, "Test"); in der cpp mache, funktioniert es ja auch.
Nur halt aus der Ram.h nicht, da ich ja noch das handle brauche und ich nicht weiß, wie ich das bekomme.evo2
-
HWND hDlg = GetForegroundWindow()->GetSafeHwnd(); SetDlgItemText(hDlg,IDC_Info1,"Hello World");
-
Hi
void ChangeText(HWND hDlg, DWORD dwID, LPCSTR lpText)
{
::SetDlgItemText(hDlg,dwID,lpText);
}....
// Aufruf irgendwo
ChangeText(GetSafeHwnd(),IDC_STATIC,"Hallo");
-
chr1s schrieb:
HWND hDlg = GetForegroundWindow()->GetSafeHwnd(); SetDlgItemText(hDlg,IDC_Info1,"Hello World");
ohne das ->GetSafeHwnd() funktioniert es.
THXund @Mark8
deins funktioniert irgendwie nich. auch bei dem GetSafeHwnd()
da kommt immer das:
error C2039: 'GetSafeHwnd' : Ist kein Element von 'HWND__'
Siehe Deklaration von 'HWND__'evo2
-
man könnts ja auch einfacher machen, cih sag nur
DDX
und dann noch ne kleine funktion zur dialogklasse
basteln, die die text variable ändert und dann
nen UpdateData ( false) ausführt...