A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
このような場合は、2ステップに分けてプログラムします。
WM_SIZEのハンドラ関数(OnSize)にコントロール配置変更処理を記述するのではなく、まず、コントロール配置関数(例えば、void LayoutCtrls();)を作成してください。これは、現在OnSize関数に記述されている内容をLayoutCtrls()関数にコピーすればOKでしょう。
このような処理関数を作成したら、プログラム中で、LayoutCtrls()を呼び出せば、自動的にコントロールの再配置が行われるようになりますよね。。また、当然、WM_SIZEメッセージが発生したときにもコントロールの再配置を行う必要がありますから、OnSize関数内からもLayoutCtrls()を呼び出します。
以上の仕組みでOKでしょう。
ちなみに、起動時にコントロールの配置を行いたい場合は、
Viewの場合 : OnInitialUpdate関数の末尾
Dialogの場合 : OnInitDialog関数の末尾
で、LayoutCtrls()を呼び出します。
No.2
- 回答日時:
WM_SIZEはご存知のとおり、ウィンドウのサイズを変更した(=リサイズした)ときに発生するメッセージですから、サイズを変更せずに発生させるのは普通にはできそうにありません。
本来とは異なるサイズでウィンドウを作成しておき、最初に本来のサイズにMoveWindowしてみては。
もっとも、いろいろ細工を考えるのは勉強にはなりますが「いちばん良い方法」とは言えません。いちばん良い方法は、WM_SIZEだけでリサイズするのをやめて、ウィンドウ作成時にもWM_SIZEなしでリサイズすることです。
No.1
- 回答日時:
MoveWindowでウィンドウの大きさを変更すればWM_SIZEは発生します。
SW_SHOW状態でウィンドウの大きさを変更すると、タイミングによってはちらついてしまうと思うので、その場合はSW_HIDEにしてから変更しましょう。
この回答への補足
色々やってみましたが、回答していただいたように
親ウインドウを本当にリサイズする方法しかWM_SIZEを
発生させる方法が分かりませんでした。
本当にリサイズする以外によい方法はないのでしょうか?
本当にリサイズした場合はちらつきが目立ちます。
SW_HIDEもやってみましたが、コントロールがちらついて
しまいました。ちらつきに関しては頑張ればできそうですが
とても大変そうなので、リサイズせずにWM_SIZEが発生する
という方法を探しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
最近、いつ泣きましたか?
泣いてストレス発散! なんて言いますよね。 あなたは最近いつ、どんなシチュエーションで泣きましたか?
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
メモのコツを教えてください!
メモを取るのが苦手です。 急いでメモすると内容がごちゃごちゃになってしまったり、ひどいときには全く読めない時もあります。
-
昨日見た夢を教えて下さい
たまにすごいドラマチックな夢見ること、ありませんか? 起きてからも妙に記憶に残っているような、そんな夢。
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
画面を強制的に再描画させる方法
C言語・C++・C#
-
リソースエディタでスタティックテキストの文字サイズの変更
C言語・C++・C#
-
WM_SIZEとWM_SIZINGの違い (Win32API)
C言語・C++・C#
-
-
4
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
5
CStaticコントロールの静的イメージ描画
C言語・C++・C#
-
6
作成したウインドウのサイズを固定するには?
C言語・C++・C#
-
7
エディットボックスで改行
その他(プログラミング・Web制作)
-
8
Win32APIでのエディットボックスの文字化け
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コントロールの書式設定で、“コ...
-
VB6のイメージコントロールでUR...
-
EXCELVBA リストボックスで選択...
-
文字色を変えたい(ACCESS VBA)
-
TabControlとToolBarの背景色変更
-
エクセル - リストボックスのマ...
-
エクセルのコントロールツール...
-
スピンボタンを右クリックして...
-
コードでスクロールバーを操作...
-
グラフの交点の求め方(Excel)
-
エクセルで作った新しいウイン...
-
フォントの大きさ
-
Minecraft 統合版(PC)の描画距...
-
ゲームでは結局どっちが良いの?
-
勝手にウィンドウが開いて止ま...
-
「アイテムは収集されました」...
-
ExcelのBOOKが消えた!
-
Excelのセルのフォントサイズを...
-
虚数は我々日常生活の身近なと...
-
メッセージループについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コントロールの書式設定で、“コ...
-
エクセルのコントロールツール...
-
スピンボタンを右クリックして...
-
DateTimePickerでに年月までし...
-
ActiveXコントロールを.NETにイ...
-
フォームでPDFを表示させた...
-
連続で印刷すると画像が更新さ...
-
コモンダイアログコントロール...
-
ワードのドロップダウンリスト
-
警告表示を非表示にしたい
-
エクセル - リストボックスのマ...
-
EXCELVBA リストボックスで選択...
-
VScrollBarの点滅を何とかしたい。
-
リストコントロール(MFC or API...
-
CEdit の内容が変わった時にメ...
-
VisualStudio MFC変数が追加で...
-
VBAでリストボックス内で↑↓の操...
-
文字色を変えたい(ACCESS VBA)
-
TabControlとToolBarの背景色変更
-
VB6.0のデザイン時 コントロー...
おすすめ情報