Ressourceneditor von Visual Studio 2005 verursacht Fehler

HCWD

Erfahrenes Mitglied
Hallo

ich hab endlich mit die Visual Studio 2005 Standard Edition zu gelegt und muss sofort ein Problem feststellen:

Wenn ich einen modalen Dialog erstelle und ihn dann ausführe, verschieben sich alle Steuerelemente, welche sich auf diesem Dialog befinden um ca.30px nach unten. Was verursacht diesen Effekt? Kann man dies beheben?

Greetz
 
Da müßte man mehr vom Code sehen.

Hat der Dialog evtl. ein (leeres) Menü abbekommen?

Schnapp dir den Spy (müßte mit installiert sein), und geh mit dem Fadenkreuz über den Dialog. Da kannst du recht gut sehen, wo was draufliegt.
 
so... habs jetzt mal mit spy++ durchgecheckt... alles einwandfrei. Keine unnötigen Handles oder Threads. Alles so wie es sein soll. Ich versteh das nicht. Ich poste mal den Code aus der .rc Datei, aus der der Dialog erzeugt wird:

Code:
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_LOGIN DIALOGEX 0, 0, 200, 100
STYLE DS_ABSALIGN | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION
EXSTYLE WS_EX_CONTEXTHELP | WS_EX_STATICEDGE
CAPTION "Login"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "Einloggen...",IDC_LOGGING,7,66,74,14
    DEFPUSHBUTTON   "Schließen",IDC_CLOSE,107,66,74,14
    LTEXT           "Benutzer",IDC_STATIC,7,4,30,8
    LTEXT           "Kennwort",IDC_STATIC,7,33,30,8
    EDITTEXT        IDC_USER,7,14,181,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_PASS,7,43,181,14,ES_PASSWORD | ES_AUTOHSCROLL
END

Vielleicht findet ihr was daran.

Dialog wird ganz simpel mit dem Befehl geöffnet:

Code:
DialogBox((HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),MAKEINTRESOURCE(IDD_LOGIN), hWnd, LoginProc);
 
Ich hab den Fehler gefunden:

Ich hatte ja, so wie beabsichtigt, eine eigene Callback Funktion für den Dialog definiert, die ich in einer seperaten ccp Datei abgespeichert hatte.

Der Fehler lag darin, dass ich den Rückgabewert nicht mit return am Ende definiert hatte, sondern eine default Marke gesetzt habe mit folgendem Inhalt:

Code:
return DefWindowProc (Login, message, wParam, lParam);

Damit es auch die Anderen wissen, falls sie ein ähnliches Problem haben. ^^
 
Zurück