ウィンドウの位置を保存する
レジストリまたは .INI ファイルの指定のセクションにバイナリ データを書き込む、WriteProfileBinaryを使います。 OSのバージョンによって格納先が変わります。
- Windows NT では、レジストリ キーに格納されます。
- Windows 3.x では、WIN.INI ファイルに格納されます。
- Windows 95 / 98 では、キャッシュされた WIN.INI ファイルに格納されます。
WINDOWPLACEMENT wp;
GetWindowPlacement(&wp);//ウィンドウの位置を取得
AfxGetApp()->WriteProfileBinary("セクション名","エントリ名",(LPBYTE)&wp,sizeof(wp));
復元する場合、OnInit***等で
WINDOWPLACEMENT *pwp;
UINT nl;
if(AfxGetApp()->GetProfileBinary("セクション名", "エントリ名", (LPBYTE*)&pwp, &nl)){
SetWindowPlacement(pwp);
delete [] pwp;
}
GetProfileBinaryは内部でnewしたメモリを返してくれるようです。 MSDNでは、呼び出し元でdelete[]するように書かれています。