Zum Inhalt springen

CEdit Grösse zur Laufzeit ändern.


TinTin

Empfohlene Beiträge


void CMyDlg::OnSetfocusEdComment() 

{

	CRect rect;

	CWnd *wnd = GetDlgItem(IDC_ED_COMMENT);

	wnd->GetWindowRect(&rect);

	rect.bottom = rect.bottom + 28;

	wnd->SetWindowPos(wnd,rect.left,rect.top,rect.right,rect.bottom,NULL);

	UpdateWindow();


}

Mal sehen, jetzt gehts erst mal nach hause, schönes wochenende

Link zu diesem Kommentar
Auf anderen Seiten teilen


void CMyDlg::OnSetfocusEdComment() 

{

	CRect rect;

	CWnd *wnd = GetDlgItem(IDC_ED_COMMENT);

	wnd->GetWindowRect(&rect);

	rect.bottom = (rect.bottom + 28);

	wnd->MoveWindow(rect,TRUE);

	UpdateWindow();

}

Funktioniert bei mir.

Wen ich den Code bei mir einfüge, dann verschiebt es mir das Editfeld

an eine ganz andere Stelle. Die Höhe wird geändert, aber das ganze Editfeld

verschiebt sich. Kann es eventuell daran liegen, dass das Editfeld in einem

Static Rahmen liegt? Denn es wird aus diesem verschoben und liegt dann

daneben.

TinTin

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mit GetWindowRect bekommst du Koordinaten relativ zur linken oberen Ecke des Bildschirms. MoveWindow geht aber davon aus, dass die Koordinaten relativ zur linken oberen Ecke des Clientbereichs des Elternfensters sind.

Es sollte ausreichen, wenn du statt GetWindowRect GetClientRect verwendest.

Ach ja, das hier:

rect.bottom += 28;

macht weniger den Eindruck eines BASIC-Umsteigers.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es sollte ausreichen, wenn du statt GetWindowRect GetClientRect verwendest.

Das ist noch nicht ganz die Lösung.

CWnd *wnd = GetDlgItem(IDC_ED_COMMENT);

	wnd->GetClientRect(&rect);
ergibt: {top=0 bottom=16 left=0 right=121} (das sind nicht die Koordinaten im Client, die Maße des Feldes)

rect.bottom += 28;

wnd->MoveWindow(rect,TRUE);

setzt mir das Editfeld dann auch genau ins linke obere Eck des Fenster.

Was auch logisch ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...