in CFormView Titelleiste anzeige

titanic

Mitglied
Hallo Forum,

ist es möglich in einem CFormView die Titelleiste der Dialogressource anzuzeigen,
oder krieg nur ich es nicht hin?

Eigentlich soll mein View so aussehen:

-------------------------------------------------------------
Beschriftung
-------------------------------------------------------------
Toolbar
-------------------------------------------------------------


ListCtrl



-------------------------------------------------------------
Ich bin für jeden Beitrag dankbar

titanic
 
Hallo,

Ressourcen für FormViews sind üblicherweise immer Fenster ohne Titel, da sie ja in einen Container (MainFrame) eingefügt werden. Die Beschriftung kannst du entweder als statisches Textfeld im View selbst einfügen oder du musst den Titel des MainFrame ändern.

Gruß
MCoder
 
Danke für die Antwort MCoder,
dann mache ich es auch so:

-------------------------------------------------------------
Beschriftung (Static Text)
-------------------------------------------------------------
Button1, Button2,...
-------------------------------------------------------------


ListCtrl



-------------------------------------------------------------


Noch eine Frage:
im OnSize-Ereignis hole ich das Rechteck vom Ctrl
(mit GetClientRect(..))

die top-Eigenschaft hat den Wert 0,
sollte eigentlich abweichen,
habe ich irgenwas nicht berücksicht?

Mene Funktion:

Code:
inline void CElementPropertyFormView::SetSize(int cx, int cy)
{
	CRect rectSized;
	CListCtrl* pCtrl = (CListCtrl*)GetDlgItem(IDC_PROPERTY_LIST);
	if (pCtrl != NULL)
	{
		//Spalten-Breite neu anpassen
		LVCOLUMN col;
		col.mask = LVCF_WIDTH;
		if (pCtrl->GetColumn(0, &col))
		{
			col.cx = 12.0;
			pCtrl->SetColumn(0, &col);
		}
		if (pCtrl->GetColumn(1, &col))
		{
			col.cx = cx/2.0;// + 1.5;
			pCtrl->SetColumn(1, &col);
		}
		if (pCtrl->GetColumn(2, &col))
		{
			col.cx = cx/2.0 - 15.0;
			pCtrl->SetColumn(2, &col);
		}

		pCtrl->GetClientRect(&rectSized);
		//rectSized.top == 0;
		//rectSized.left == 0;

		rectSized.bottom = cy;
		rectSized.right = cx;
		pCtrl->MoveWindow(rectSized);   
	}
}


Gruß
titanic
 
Hallo,

bei GetClientRect() sind die Ursprungskoordinaten immer Null. Du musst die absoluten des Koordinaten des Controls ermitteln und diese dann in die Client-Koordinaten des Views umrechnen:
C++:
pCtrl->GetWindowRect(&rectSized);
ScreenToClient(&rectSized);
Gruß
MCoder
 
Zurück