Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Name eines Controls

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
10.09.2003, 14:11 Uhr
~res
Gast


hallo!
wie findet man den namen eines controls , z.b. IDD_MYBUTTON
mit ->GetDlgCtrlID() liest man die ID zb. 23033
wie also kann man andersherum die "konstante/Name" lesen?
so etwa wie
strText.Format("%s", GetDlgCtrl(23033)); ???
AfxMessageBox(strText);

Ausgabe:
"IDD_MYBUTTON"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.09.2003, 15:25 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


das IDD_MYBUTTON lässt sich nicht auslesen da das nur ein Alias für z.b 23033 ist (schau mal in resource.h da siehste wie deine buttons definiert sind)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.09.2003, 15:48 Uhr
~res
Gast


hallo!

o.k. war mein fehler. ich wollte, genauer gesagt, den symbolnamen meiner fenster
in der header-datei steht:
enum { IDD = IDD_MY_WINDOW_1 };
in einer anderen header zu einem zweiten fenster steht
enum { IDD = IDD_My_WINDOW_2 };

und genau diese symbol-namen möchte ich lesen, um sie zwecks speicherung von einstellungen mit namen getrennt speichern zu können.
z.B.

IDD_MY_WINDOW_1\Settings\Max=5

IDD_MY_WINDOW_2\Settings\Max=3

in der resource dazu steht z.b. bei IDD_MY_WINDOW_1:

IDD_MY_WINDOW_1 DIALOGEX 0, 0, 640, 480
STYLE DS_3DLOOK | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU | WS_THICKFRAME
CAPTION "Mein Fenster Nr. 1"
FONT 8, "MS Sans Serif"
BEGIN
CONTROL
...
Ich möchte allerdings nicht die Caption "Mein Fenster Nr. 1" speichern, da sich der öfter ändern kann.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.09.2003, 16:59 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


speicher einfach die DlgID die dahinter steht, also z.b

23543\Settings\Max=5

usw
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.09.2003, 17:32 Uhr
~res
Gast


hallo!

wie kann man anhand der control-id die art (Editfeld, ListBox etc.) rauskriegen?

etwa so:
GetClassName( ControlId, ClassName);
if( ClassName == "Edit" )
{
AfxMessageBox("Control Edit gefunden");
}

Mit GetClassName() oder so. allerdings sollte es nicht über EnumChildWindows() laufen, entspr. Beispiel habe ich schon.
//Grund: Bestimmte Control-Art auf Dialog finden
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
11.09.2003, 18:19 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ohne ControlID wirste das Control nicht suchen können
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
11.09.2003, 19:30 Uhr
~res
Gast


wieso, die habe ich aus der messagemap?
ich weiß bis dato nur nicht, welches der id meinem gesuchten control entspricht.


C++:
CWnd* pWnd = NULL;
int i = 0;
while(ctrlmessagemap[i].id)
{
pWnd = GetDlgItem(ctrlmessagemap[i].id);
if(pWnd)
{
  GetClassName( ctrlmessagemap[i].id, ClassName); <---???
   if( ClassName == "Edit" )
   {
   AfxMessageBox("Control Edit gefunden");
   }
}
}



--edit: Pablo. [ cpp ] tags gesetzt --

Dieser Post wurde am 11.09.2003 um 19:57 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
11.09.2003, 22:24 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


wo liegt da das problem, müsste doch funktionieren! du solltest nur


C++:
pWnd->GetClassName(...)


benutzen!
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
12.09.2003, 10:40 Uhr
~res
Gast


pWnd = GetDlgItem(ID_ANY_CONTROL);
pWnd->GetClassName(strClass);

"GetClassNameA' : Ist kein Element von 'CWnd' "..ist das Problem

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
12.09.2003, 15:05 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Du musst das Handle übergeben!
Also

C++:
pWnd = GetDlgItem(ID_ANY_CONTROL);
GetClassName(pWnd->m_hWnd, szClass, 512);



mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: