R
@Renè,
tut so leider nicht (ich hab's jedenfalls mit OnSize und MoveWindow nicht hingekriegt. Aber dafür habe ich eine andere Lösung:
// Zuständig für die Organisation minimierter Fenster, um eine individuelle Positionierung der
// minimierten Fenster zu erreichen.
LRESULT CChildFrame3::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if(message == WM_SYSCOMMAND)
{
// Speicherung der aktuellen (nichtminimierten) Fensterdaten.
WINDOWPLACEMENT wp;
GetWindowPlacement(&wp);
// Wird 'Minimiern'-Button gedrückt
if((wParam & 0xFFF0) == SC_MINIMIZE)
{
CPoint pMin;
// muß gesetzt werden, um Position manuell eingeben zu können
wp.flags = WPF_SETMINPOSITION;
// Fenster soll minimiert werden
wp.showCmd = SW_MINIMIZE;
// Funktion der Applikation, die die Anzahl minimierter Fenster hoch- bzw. Rücksetzt
theApp.SetMinimized(1);
// Funktion der Applikation, die die Anzahl minimierter Fenster zählt
int nMinimized = theApp.GetMinimized();
// Berechnung der Koordinaten
int nMaxRow = (m_rcMiniArea.bottom + 24 - m_rcMiniArea.top) / 24;
int nAreaCols = (nMinimized - 1 ) / nMaxRow;
int nAreaRows = (nMinimized - (nAreaCols * nMaxRow)) - 1;
pMin.x = m_rcMiniArea.left + (nAreaCols * 160);
pMin.y = m_rcMiniArea.bottom - (nAreaRows * 24);
wp.ptMinPosition = pMin;
// Setzten des minimierten Fensters
SetWindowPlacement(&wp);
}
Natürlich müssen dann noch die minimierten Fenster wieder zurückgesetzt werden, falls eines dieser Fenster wiederhergestellt oder maximiert wird. Doch ansonsten tut`s