ウィンドウ位置、サイズ、状態の取得/設定

ToString()で文字列にして、レジストリに保存すると便利です。
(2003.09.18)
#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);
    }
};
一覧に戻る
© 2003 WAC.com All Right Reserved.