dポイントプレゼントキャンペーン実施中!

起動時のウインドウサイズは以下で指定することが出来ますが、タイマーなどを使って、例えば起動後1分後にサイズを変えることは出来ますか?

<VC++6.0 MFCにて>


BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: この位置で CREATESTRUCT cs を修正して、Window クラスやスタイルを
// 修正してください。

// ウィンドウの左上が X軸200,Y軸100の場所に指定
cs.x = 200;
cs.y = 100;
// ウィンドウのサイズを、幅500,高さ300に指定
cs.cx = 500;
cs.cy = 300;

return TRUE;
}

A 回答 (4件)

void CABCView::OnLButtonUp(UINT nFlags, CPoint point)


{
AfxGetMainWnd()->SetWindowPos(NULL,aaa,bbb,ccc,ddd,SWP_SHOWWINDOW);
CView::OnLButtonUp(nFlags, point);
}
では、期待する結果では無いですか?
    • good
    • 0
この回答へのお礼

100%期待通りです。

勉強の甲斐有って、最近ようやく教えていただいたことの意味は分かるようになりましたが、まだまだ具体的なコードを自力では書けません。

また一歩前進できたと思います。
有難うございました。今後ともよろしくお願いいたします。

お礼日時:2003/03/03 19:22

> SetWindowPosを使って再描画し、メインウインドウの


> サイズを変えるためには具体的にどのようなコードを
> 書けば良いのでしょう?

(クライアント領域ではなく)メインウィンドウに対してSetWindowPosします。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
まだまだ分からないことだらけの初心者です。
今回の件が分かれば、また一歩前進できると思います。

>(クライアント領域ではなく)メインウィンドウに対して
>SetWindowPosします。
恥ずかしながらどのようにすれば良いのか分かりません。
ご教授ください。


以下は私が犯したまちがいコードです。

void CABCView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
CRect rect;
GetWindowRect(&rect);
SetWindowPos(&wndTop, aaa, bbb, ccc, ddd,SWP_SHOWWINDOW);

CView::OnLButtonDown(nFlags, point);
}

お礼日時:2003/03/03 18:48

SetWindowPos


で、新しい幅・高さを設定できますが、使えませんか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

当方初心者です。タイマーの使い方は分かります。

話を簡単にするために、左クリックしたときに
SetWindowPosを使って再描画し、メインウインドウのサイズを変えるためには具体的にどのようなコードを書けば良いのでしょう?

適当な見本を探して、一応自分でやってみましたが、クライアント領域は変わりましたが、フレームのサイズが変わりませんでした。

よろしくお願いいたします。

お礼日時:2003/03/03 18:25

できます。

タイマーを起動し、そのタイムアウト・メッセージを捕まえてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2003/03/03 18:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!