Standardwert für MessageBox
-
Hallo,
burnner schrieb:
lol einfach kein NULL schreiben sondern das was du willst...
Schon klar, aber dann müsste ich einiges am Code ändern...
Ich finde es einfacher, den Standard-Wert zu ändern, als jede MessageBox.
mfg
trequ
-
Hast du schon im Stringtable geguckt?
-
Hallo,
estartu_de schrieb:
Hast du schon im Stringtable geguckt?
Da steht nur der About-Box Eintrag drin.
Alle anderen Einträge sind von mir, da ist es nicht dabei.Ich überlege nur, woher er das nimmt...
mfg
trequ
-
Oder vielleicht bei VersionInfo?
-
Drück mal Strg+Shift+F und lass nach dem vertippten Wort suchen (über das ganze Projektverzeichnis).
Man verschreibt sich selten genau so wieder.
Außerdem hab ich grade mal in die MSDN geguckt und da steht, dass "Error" genommen wird, wenn du NULL mitgibst. Da Microsoft sich ja wohl hoffentlich nicht verschrieben hat, debug da mal mit F11 in die Funktion rein, vielleicht hast du ja eine eigene oder siehst, wo die Zeichenkette her kommt.
-
Hallo,
Pulse schrieb:
Oder vielleicht bei VersionInfo?
Leider nein...
Es wird nicht "Error" genommen, sondern der Name des Projektes.
Wenn ich ein neues Projekt anlege und das Projekt dem Namen "Test1" gebe, steht im Titel der MessageBox "Test1", wenn man die MessageBox mit NULL erstellt.Ich habe den Fehler scheinbar schon beim Anlegen des Projektes gemacht und nun verfolgt er mich.
mfg
trequ
-
Hmm, hast du suchen lassen? Nix gefunden?
Die einzigen Stellen, die ihc mir vorstellen kann sind:
Zeichenfolgentabelle:
IDS_MAINFRAME
AFX_IDS_APP_TITLEIch guck mal...
-
So, ich habe geguckt - hier mal als Gedankenkette:
In MessageBox wird die Funktion AfxGetAppName benutzt, wenn der Titel NULL ist.
int CWnd::MessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption, UINT nType) { if (lpszCaption == NULL) lpszCaption = AfxGetAppName(); int nResult = ::MessageBox(GetSafeHwnd(), lpszText, lpszCaption, nType); return nResult; }
Suchergebnis:
_AFXWIN_INLINE LPCTSTR AFXAPI AfxGetAppName() { ASSERT(afxCurrentAppName != NULL); return afxCurrentAppName; }
Also nach afxCurrentAppName suchen:
#define afxCurrentAppName AfxGetModuleState()->m_lpszCurrentAppName
NAch m_lpszCurrentAppName suchen:
[cpp]
// m_pszAppName is the name used to present to the user
if (m_pszAppName == NULL)
{
BOOL bEnable = AfxEnableMemoryTracking(FALSE);
if (AfxLoadString(AFX_IDS_APP_TITLE, szTitle) != 0)
m_pszAppName = _tcsdup(szTitle); // human readable title
else
m_pszAppName = _tcsdup(m_pszExeName); // same as EXE
AfxEnableMemoryTracking(bEnable);
}pModuleState->m_lpszCurrentAppName = m_pszAppName;
ASSERT(afxCurrentAppName != NULL);
[/cpp]Suchverzeichnis war PROGRAMME\MICROSOFT VISUAL STUDIO\VC98\MFC\, weil ich ja nach MFC Funktionen gesucht habe.
Also musst du AFX_IDS_APP_TITLE ansehen.
So einfach findet man das mit F11 und "In Dateien suchen".
-
Hallo
Also du kannst unter Projekt -> Einstellungen ->auf den Reiter "Linker" und beim Namen der Ausgabedatei könntest du deiner .exe einen anderen Namen geben und beim aufruf der MessageBox hast du dann auch den "geänderten Namen"
Sven
-
Genau, Specialguest, das ist die Lösung. MessageBox verwendet nämlich AfxGetAppName und das wird im CWinApp-Konstruktor mit dem exe-Namen initialisiert.
Edit:
Hu, da war ich aber arg lahm
-
Specialguest schrieb:
Hallo
Also du kannst unter Projekt -> Einstellungen ->auf den Reiter "Linker" und beim Namen der Ausgabedatei könntest du deiner .exe einen anderen Namen geben und beim aufruf der MessageBox hast du dann auch den "geänderten Namen"
Sven
Danke euch allen.
Das wars, es geht.