#pragma once
////////////////////////////////////////////////////////////////////////////////
// CWindowPlacement
class CWindowPlacement : public WINDOWPLACEMENT
{
public:
CWindowPlacement()
{
memset(this, 0, sizeof(WINDOWPLACEMENT));
length = sizeof(WINDOWPLACEMENT);
}
CWindowPlacement(LPCTSTR szString)
{
memset(this, 0, sizeof(WINDOWPLACEMENT));
length = sizeof(WINDOWPLACEMENT);
this->FromString(szString);
}
CWindowPlacement(HWND hWnd)
{
memset(this, 0, sizeof(WINDOWPLACEMENT));
length = sizeof(WINDOWPLACEMENT);
::GetWindowPlacement(hWnd, this);
}
public:
CString ToString()
{
CString strValue;
strValue.Format(
_T("%d,%d,%d,%d,%d,%d,%d,%d"),
showCmd,
flags,
ptMinPosition.x,
ptMinPosition.y,
rcNormalPosition.left,
rcNormalPosition.top,
rcNormalPosition.right,
rcNormalPosition.bottom);
return strValue;
}
void FromString(CString szString)
{
sscanf(
(LPCTSTR)szString,
_T("%d,%d,%d,%d,%d,%d,%d,%d"),
&showCmd,
&flags,
&ptMinPosition.x,
&ptMinPosition.y,
&rcNormalPosition.left,
&rcNormalPosition.top,
&rcNormalPosition.right,
&rcNormalPosition.bottom);
}
};