- ベストアンサー
ウインドウサイズについて
起動時のウインドウサイズは以下で指定することが出来ますが、タイマーなどを使って、例えば起動後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; }
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
void CABCView::OnLButtonUp(UINT nFlags, CPoint point) { AfxGetMainWnd()->SetWindowPos(NULL,aaa,bbb,ccc,ddd,SWP_SHOWWINDOW); CView::OnLButtonUp(nFlags, point); } では、期待する結果では無いですか?
その他の回答 (3)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> SetWindowPosを使って再描画し、メインウインドウの > サイズを変えるためには具体的にどのようなコードを > 書けば良いのでしょう? (クライアント領域ではなく)メインウィンドウに対してSetWindowPosします。
お礼
回答ありがとうございます。 まだまだ分からないことだらけの初心者です。 今回の件が分かれば、また一歩前進できると思います。 >(クライアント領域ではなく)メインウィンドウに対して >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); }
- 405
- ベストアンサー率50% (17/34)
SetWindowPos で、新しい幅・高さを設定できますが、使えませんか?
お礼
回答ありがとうございます。 当方初心者です。タイマーの使い方は分かります。 話を簡単にするために、左クリックしたときに SetWindowPosを使って再描画し、メインウインドウのサイズを変えるためには具体的にどのようなコードを書けば良いのでしょう? 適当な見本を探して、一応自分でやってみましたが、クライアント領域は変わりましたが、フレームのサイズが変わりませんでした。 よろしくお願いいたします。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
できます。タイマーを起動し、そのタイムアウト・メッセージを捕まえてください。
お礼
回答ありがとうございます。
お礼
100%期待通りです。 勉強の甲斐有って、最近ようやく教えていただいたことの意味は分かるようになりましたが、まだまだ具体的なコードを自力では書けません。 また一歩前進できたと思います。 有難うございました。今後ともよろしくお願いいたします。