ベストアンサー ※ ChatGPTを利用し、要約された質問です(原文:ウインドウサイズを変更しても描画領域が変わらない(Win32API)) ウインドウサイズを変更しても描画領域が変わらない(Win32API) 2007/04/03 23:36 このQ&Aのポイント ウインドウサイズの変更がうまくいかない問題についてブラウザウインドウのサイズ変更に関して問題が発生しているウインドウサイズと描画領域の関連性について解説 ウインドウサイズを変更しても描画領域が変わらない(Win32API) @ITの http://www.atmarkit.co.jp/fwcr/special/custom_browser/01.html を参考にブラウザを作ろうと思っています. 上記記事中のソースコード http://www.atmarkit.co.jp/fwcr/special/custom_browser/code.html#02 をコピペしてビルドしたところ,確かにブラウザになったのですが,ウインドウサイズの変更がうまくいきません. ウインドウ縁をドラッグしたり,最大化ボタンをクリックしてサイズの変更をしても,描画領域は変更されないのです. (例えば) ・アプリ起動時に300x300のウインドウが生成,yahoo.co.jpが表示される ・縁をドラッグして450x450にする ・ウインドウは大きくなるものの,300x300の範囲にしかyahooが表示されない(スクロールバーの位置も変わらない) といった具合です. どうすればウインドウサイズとともに描画領域も変化するようになるのでしょうか? 質問の原文を閉じる 質問の原文を表示する みんなの回答 (2) 専門家の回答 質問者が選んだベストアンサー ベストアンサー Oh-Orange ベストアンサー率63% (854/1345) 2007/04/04 13:27 回答No.2 ★『WM_SIZE』メッセージ(ハンドラ)などを処理すること ・ウインドウのサイズを変更したときに、ブラウザ画面をウインドウサイズに合わせて いないためです。スクロールバーの位置が変わらないのはその為です。 ぱっと見た限りでは『WM_SIZE』メッセージを処理していないようです。 ・『WM_SIZE』メッセージでウインドウのサイズが変化したときに、ブラウザ画面をその サイズに合うように再設定する必要があります。→『MoveWindow』や『SetWindowPos』 API関数でサイズを変更できます。 ・もう一度、ソースを良く見直してから『WM_SIZE』メッセージ(ハンドラなど)の処理が 記述されていないときは、『WM_SIZE』メッセージでサイズの変更を処理して下さい。 最後に: ・なお、再描画はされていると思います。 ですのでウインドウ縁をドラッグしたり、最大化ボタンをクリックしてサイズの変更が 発生したときに、『WM_SIZE』メッセージ内で描画領域のサイズを自分で変更させる必要が あるのです。 ・『MoveWindow( hWnd, 横位置, 縦位置, 横サイズ, 縦サイズ, TRUE );』 ・『SetWindowPos( hWnd, NULL, 0, 0, 横サイズ, 縦サイズ, (SWP_NOMOVE|SWP_NOZORDER|SWP_SHOWWINDOW) );』 ・以上。おわり。 質問者 お礼 2007/04/04 17:37 回答ありがとうございます。 おっしゃる通り、問題はウインドウプロージャにありました。 おかげさまで解決できました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (1) noro6677 ベストアンサー率21% (34/158) 2007/04/04 10:12 回答No.1 ソース途中で読むのがめんどくさくなったので ソース以前の問題。 Windowサイズ変更した後、再描画の処理されている? 質問者 お礼 2007/04/05 12:20 お礼を投稿したつもりが、できていなかったようです。 申し訳ありません。 問題はウインドウプロージャにありました。 回答してくださってありがとうございました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発C・C++・C# 関連するQ&A WIN32APIアプリでツールバー/スステータスバーの表示切り替え VC++6.0のwin32sdkで、MFCのSDI標準テンプレートのようにメニューでツールバー,ステータスバーを切り替えるアプリケーションにしたいと思います。 以下のようなコードにしていますが、このままでは表示非表示を切り替えた場合、中央ウインドウのサイズが変更されません。 ドラッグして全体のサイズを変更すると中央メインウインドウも正常な表示になりますが、なにか中央のウインドウを再描画する処理が必要と思われます。その再描画処理についてご教示くださいますようお願いします。 1)ステータスバーの高さ,ツールバーの高さをグローバル変数にする 2)メニューからのメッセージでこのグローバル変数を表示(夫々のバーの高さ)、非表示(夫々のバーの高さ=0)を切り替える。 3)WndProcのWM_SIZEで中央メインウインドウをMoveMindowする [グローバル変数] ---------------------------------------------- static int bShow = 16;//ステータスバーの高さ(非表示は0) static int tbShow = 25;//ツールバーの高さ(非表示は0) ---------------------------------------------- [LRESULT CALLBACK WndProcの一部] ----------------------------------------------- case WM_SIZE: ...... MoveWindow(中央のハンドル, 0, tbShow, LOWORD(lp), HIWORD(lp)-tbShow-bShow, TRUE); break; ----------------------------------------------- pcモニターの描画領域を拡大したい 2台pcを持っていますが、1台がIE表示時に描画領域が狭く! もう一台の描画領域と比較すると不便で、スクロールしないと全体を見れません。設定の変更方法を伝授願います。 宜しくお願いします。 VisualC++におけるメインウィンドウの領域に子ウィンドウを配置する際に発生する問題 メインウインドウの領域に子ウインドウを作成し、その子ウインドウの領域にオブジェクトを表示しようとしています。 そこで、子ウインドのプロシージャに描画するソースを書いているのですが、子ウインドウの描画領域には何も表示されず、親ウインドウの描画領域に表示されてしまいます。 どうすれば子ウインドウの領域に描画することができるのでしょうか? 説明の至らない点もあると思いますが、わかる方いらっしゃいましたら宜しくお願い致します。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム ウインドウのサイズ変更、移動ができません Windows7 Professional 32bitを使用しているのですが ウインドウをマウスで移動、サイズ変更が出来なくなってしまいました。 マウスの右クリック、キーボードのショートカット(Alt+Space)のメニューで移動や、サイズ変更を選ンだ場合、キーボードで操作すれば移動、サイズ変更ともに正常に動作します。 最大化、最小化ボタンも正常に機能します。 マウスの場合、ウインドウの縁にマウスポインターを持っていくと、サイズ変更の矢印ポインターに表示は変わりますが、マウスの左ボタンを押しても枠が選択されず、ドラッグしても、通常のポインターに戻ってしまいます。 移動に関しては十字矢印のポインターにも変わりません。 原因は多分registryboosterというレジストリーエラーを修正してくれるというソフトのせいだと思います。 このソフトにリストアがあったのでリストアしてみましたが戻りませんでした。 どなたか、この問題の解決法をご存じないでしょうか? よろしくお願いいたします。 ウインドウのサイズ変更、移動ができません。 Windows7 Professional 32bitを使用しているのですが ウインドウをマウスで移動、サイズ変更が出来なくなってしまいました。 マウスの右クリック、キーボードのショートカット(Alt+Space)のメニューで移動や、サイズ変更を選ンだ場合、キーボードで操作すれば移動、サイズ変更ともに正常に動作します。 最大化、最小化ボタンも正常に機能します。 マウスの場合、ウインドウの縁にマウスポインターを持っていくと、サイズ変更の矢印ポインターに表示は変わりますが、マウスの左ボタンを押しても枠が選択されず、ドラッグしても、通常のポインターに戻ってしまいます。 移動に関しては十字矢印のポインターにも変わりません。 原因は多分registryboosterというレジストリーエラーを修正してくれるというソフトのせいだと思います。 このソフトにリストアがあったのでリストアしてみましたが戻りませんでした。 どなたか、この問題の解決法をご存じないでしょうか? よろしくお願いいたします。 Windowsでウィンドウのサイズ変更をしたいのですが… Windowsでウィンドウのサイズ変更をしたいのですがサイズが通常変更できないウィンドウでもサイズ変更ができ、サイズを変更してもウィンドウ内で隠れる部分などがなく縮小した感じで表示できるツール又は方法はありませんか? Win32APIでウィンドウ内のレイアウトを変更 Visual C++ 2008で,Win32APIを使い, キーボードショートカットでウィンドウを指定した場所へ配置するソフトウェアを実装しました. (Ctrl + Shift + T で現在のウィンドウ全部をタイリングする,などです) これ自体はSetWindowPosで簡単にできるのですが, ウィンドウ内のレイアウトを移動する機能を追加したくて今回質問いたしました. たとえばファイルエクスプローラは, 左側に縦長で フォルダの階層構造での表示領域, 右側に大きく 現在のフォルダの内容を表示する領域 があります. このレイアウトを,たとえば「左側の領域の横幅が130ピクセル未満であれば130ピクセルにする」などといった処理を行いたいです. 他にもウィンドウ内を区切るバーを持ったソフトがありますが(Visual Studioなど),これを移動させてレイアウトを変更する方法はあるのでしょうか? もしご存じの方がいらっしゃれば,ご教示いただければ幸いです. どうぞよろしくお願いいたします. ウィンドウのサイズ変更が出来ない。 ウィンドウのサイズ変更が出来ない。 自分は普段はwin使ってるんですが、だからまだmacは不慣れなのです、、、 miってフリーソフトを落として、起動してしばらく使っているうちに、なんかの手違いでウィンドウを大きくし過ぎて、サイズを変更できなくなりました。 画面を最大化しようが、普通サイズにしようが、ウィンドウを上に持っていこうとしてもシステムバー(?)で突っかかって、それでも画面が1~2行分ぐらい画面外に下に潜って、ウィンドウ右下のサイズを変える部分をドラック出来ない状況です。 一応作業ファイルを余分に改行すれば全文見れるのですが、やはり不便です。 なんとか、サイズを変更して画面内に収まるように出来ないでしょうか? よろしくお願いします。 ウィンドウのサイズ変更 Windows 10の質問です。 マウスでウィンドウの大きさ変更するための右下の隅ですが、 (添付画像の赤い四角の右下の隅)赤い場所の何処からドラッグしても サイズ変更できる様に出来ないでしょうか。 タッチ操作やペン操作で使っているときに掴みづらくて困っています。 Flashサイズぴったりにウィンドウを開く Javascriptのwindow.openを使って、新規ウィンドウを開く方法を行っているのですが、ブラウザによって開くサイズが異なります。 どのブラウザでも<body>タグ内のサイズぴったりにウィンドウを開く方法はありますでしょうか? <body>タグ内は ・余白はすべて0 ・サイズが1024x768のFLASHのみ 要はbody表示範囲を1024x768(px)にしてウィンドウを開きたいのですが、どんな方法がありますか? またその方法はどのブラウザに対応していますか? windows7のexplorerの表示領域を・・ 私のwindows7のexplorerは、一覧表示状態にしています。 (私はこれが、全体を探しやすいので便利です) しかし、一覧は左側一列しか表示されません。 それは、プレビュー表示領域が画面の左側、四分の三ぐらいを占めているからです。 一覧を全体眺められるようにするためには、プレビューとの境目を右へドラッグしなければなりません。プレビューも便利なので、あってもいいのですが、デフォルトは画面右半分ぐらいでいいのです。 要は、プレビュー領域を、デフォルトで変更することは出来ないものなのでしょうか? Ctrl押しながら、×ボタンで閉じても、領域変更は記憶しないようです。 windows7のexplorerの表示領域を・・ 私のwindows7のexplorerは、一覧表示状態にしています。 (私はこれが、全体を探しやすいので便利です) しかし、一覧は左側一列しか表示されません。 それは、プレビュー表示領域が画面の左側、四分の三ぐらいを占めているからです。 一覧を全体眺められるようにするためには、プレビューとの境目を右へドラッグしなければなりません。プレビューも便利なので、あってもいいのですが、デフォルトは画面右半分ぐらいでいいのです。 要は、プレビュー領域を、デフォルトで変更することは出来ないものなのでしょうか? Ctrl押しながら、×ボタンで閉じても、領域変更は記憶しないようです。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム スキャナで取り込んだPDFファイルの描画領域だけ保存するには スキャナで雑誌を取り込み、PDFファイルにして保存しました。 ところが、雑誌はB4サイズなのに、 PDFはスキャナの最大取り込みサイズA3サイズになっていました。 大量に時間を費やしたので、改めて取り込みするより、 PDFファイルの描画領域だけ(ページサイズ)を変更する方法はありませんでしょうか? XPにしてから、ウィンドウの描画が異常に遅くなった Win2000とXPをデュアルブートで運用していたのですが WinXPに一旦統一しようかと思っています。 しかし、WinXPは、ウィンドウの描画がWin2000に比べて 10倍以上遅いので少し困っています。 ウィンドウの描画を、これ以上高速化する手段というのはあるのでしょうか? 前提 ・Lunaは使用していない ・視覚効果は、パフォーマンスを優先 -> ドラッグ中にウィンドウの内容を表示するのみOn(これ使用するので) ・CPU,メモリは、Pentium3-933MHz 1536Mbytes(DDR PC2700 SDRAM CL2 (2.5ではない)) ・VGAは、Geforce2 GTS または Geforce FX 5600 Ultra(後でアップグレードしてます) ・nvidia製のドライバをダウンロードして使用(最新です) ・AGPは4Xで使用、 ・Nvidwで、ドラッグ中は透過して表示・・をOnにしてます。(これで少し高速化しています) ・各種ベンチマークソフトを用いると、そこそこ高速表示させます。 you tube のサイズ変更について アップロードしたyou tube をブログに載せるときのサイズ変更なのですが 共有→埋め込みコード でサイズ調整できますが そこに表示されてる一番小さいサイズでも560×340で もう少し小さいサイズにしたいのです。 自分でサイズを入力するカスタムもありますが 縦横の比率がよくわかりません。 縦横の比率がおかしいと 画像の比率もおかしくなってしまうのでしょうか。 firefox、ダウンロードウインドウのサイズ変更 Firefoxのダウンロードウインドウ、ファイルなどをダウンロードする時にフォルダを指定するウインドウのサイズ変更ができません。 以前は画面全体の4分の1くらいのちょうど良いサイズだったのですが、最近なぜか大きくなって画面一杯になってしまいました。これでは使いにくいです。 普通のウインドウのように、端をドラッグしたりする方法でサイズ変更ができません。 Firefoxのバーションは5。OSはWindows Vistaです。サイズ変更の方法を知っている方は、教えて下さい。 ウィンドウサイズの変更 こんばんは。 固定サイズのウィンドウを大きくしたいときにWinManiaというフリーソフトの中のWinMagicを使っていたのですが、急にサイズの変更ができなくなってしまいました。 ウィンドウのサイズ自体は変わるのですが、大きくなった箇所は黒く表示されるだけで画面の大きさは変わりません。 このソフトは主にフリーゲームのウィンドウサイズを変えるのに使っていました。 理由が分かる方がいらっしゃいましたら教えてください。 リカバリをすると領域のサイズが変わってしまいます 富士通のノートパソコン AH77/Gを使用しています。 Windows 7 SP1で、HDDは750GBです。 リカバリをして、HDDのCとDを工場出荷時に戻しました。 その後、容量を見るとCが100GB、Dが約600GB(残りの全容量)になってしまっています。 リカバリ前はCとDが約300GBでしたので、同じにしたいと考えています。 トラブル解決ナビから「領域設定」で変更したところ、Windowsが起動しなくなってしまいました。 エラーは表示されず、勝手に自動修復が走り、回復できませんでしたとなって再起動をくり返します。 原因はブート領域が壊れているとのことです。 再度リカバリをかけてWindowsから領域サイズを変える方法もありますが、富士通の機種は トラブル解決ナビの「領域設定」以外でサイズ変更を行うと、トラブル解決ナビ内のツールが 使用できなくなってしまうみたいなので、できればこの方法はとりたくありません。 「領域設定」以外のツールを使わずに、どうにかCとDを約300GBずつ取る手順はないでしょうか? 画像挿入のウィンドウのサイズが変更できない Windowsメールで、メールに画像を挿入する際、画像挿入のアイコンをクリックすると、マイピクチャに登録している画像フォルダのウィンドウが開きます。そのウィンドウは最大化していて、タイトルバーには「閉じる」の×のみで、「最大化」や「最小化」のボタンはありません。 カーソルを角や端に合わせると、サイズ変更できる矢印に変わるのですが、ドラッグしてもサイズ変更はできません。 スタートボタンからマイピクチャを開けると、ウィンドウのサイズはいくらでも変更できますが、Windowsメールから開けると最大化で固定されてしまっています。 大きすぎて見にくいので小さくしたいのですが、どうしたらいいでしょうか。 ウィンドウサイズのカスタマイズ IE5.5SP1の「元のサイズ」のウィンドウの大きさを、 800x600で正確に固定したいのですが、 どのようにしたらよいでしょうか。 Webデザインを今まで800x600の画面でやっていたのですが、 新しいPCは800x600が使えなくて、困っています。 ドラッグしてサイズを決めて、Ctrl+「×」で、 ウィンドウサイズを記憶させる事は可能なのですが、 サイズが正確にならないので… レジストリの扱いも出来ますので、 もしそういう方法があるのでしたら、ご教授願います。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
回答ありがとうございます。 おっしゃる通り、問題はウインドウプロージャにありました。 おかげさまで解決できました。