終了時と同じウィンドウ位置で表示するには?
付箋紙ソフトもどきを作っています。
ダイアログのボタン押し下げにて新たなウィンドウが何個も生成されるようになっています。
アプリを終了して再度起動すると、終了前に表示されていたウィンドウが終了前と同じ位置に表示されるようにしたいと思っています。
以下のコードでは、全てのウィンドウが同じ場所に表示されてしまいます。
どのようにすれば、各ウィンドウがそれぞれの元の位置に表示されるようにできますか?
各ウィンドウ毎に位置情報を保存、読出しするにはどうすれば良いのでしょうか?
よろしくお願いします。
BOOL CMyWnd::kado_Create(CWnd* parent,CString m_InputData){
int nX,nY;//ウィンドウの位置を格納する変数
nX = GetPrivateProfileInt("Pos","X",0,"TSHANG2.INI");
nY = GetPrivateProfileInt("Pos","Y",0,"TSHANG2.INI");
略
CreateEx( dwExStyle, lpszClassName, _T("Test"), dwStyle, rect, parent, NULL, NULL);
略
}
void CMyWnd::OnDestroy()
{
int nX,nY;//ウィンドウの左上の座標を格納する変数
WINDOWPLACEMENT wp;//WINDOWPLACEMENT構造体
char szBuffer[32];//キーの値を格納する
wp.length = sizeof(WINDOWPLACEMENT);
::GetWindowPlacement(m_hWnd,&wp);
nX = wp.rcNormalPosition.left;
nY = wp.rcNormalPosition.top;
wsprintf(szBuffer,"%d",nX);
WritePrivateProfileString("Pos","X",szBuffer,"TSHANG2.INI");
wsprintf(szBuffer,"%d",nY);
WritePrivateProfileString("Pos","Y",szBuffer,"TSHANG2.INI");
略
}
お礼
回答ありがとうございます。 #一応質問後に自力で解決出来ました。 成長したというかまだまだというか。。。(^^ゞ 親から子の操作はすんなり分かるのですが、子から親の操作が、どうも感覚的にしっくり来てないようです。 これで本当に付箋ソフトの基本形が出来ました。 作る前はかなり難しいと思っていましたが、出来てしまうとそうでもない気がします。 いろいろ教えていただきましたが、taka_tetsuさんでしたら、いちいち質問に答えるより、作ったほうが早そうですね。多分1日か2日で出来るのではないでしょうか? これまでの授業料はおいくらになりますか?