C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: ディスプレイ解像度の変更方法を教えてください。


(過去ログ 47 を表示中)

[トピック内 13 記事 (1 - 13 表示)]  << 0 >>

■25604 / inTopicNo.1)  ディスプレイ解像度の変更方法を教えてください。
  
□投稿者/ 裕猫 (54回)-(2008/09/23(Tue) 15:26:39)

分類:[C#] 

また戻ってきてしまいました。
全画面表示機能をつけようと考えました。画面デザイン変更無しでやるにはディスプレイの解像度を640×480にするしかない。最大化ボタンでやると、CGはでかくなるがコントロールの位置がずれてしまう。しかしOSによって影響を受けないようにするため、DirectXは使わないようにという指示有り。Win32apiにChangeDisplaySettingsというものがあり、それでできることはわかりましたが、セッティングの方法(サンプルコード)のあるところにたどり着けません。結構厄介とはかかれていますが・・・。ここの古い記録に同じ質問がありましたが、そこにあったURLは削除されていて、見れません。すみませんが、ChangeDisplaySettingsの設定方法教えてくださいませんでしょうか?よろしくお願いいたします。
引用返信 編集キー/
■25605 / inTopicNo.2)  Re[1]: ディスプレイ解像度の変更方法を教えてください。
□投稿者/ 774RR (222回)-(2008/09/23(Tue) 15:32:16)
客に黙って画面設定を変更してしまうわけ?
デスクトップ上のアイコンがごっそり移動したりして大騒動になりそうな気のせいがする。
少なくとも俺ならそんなソフトはポイ捨てする。

仕様レベルでの再考慮を強く強く推奨する。
引用返信 編集キー/
■25606 / inTopicNo.3)  Re[2]: ディスプレイ解像度の変更方法を教えてください。
□投稿者/ 裕猫 (55回)-(2008/09/23(Tue) 15:54:29)
No25605 (774RR さん) に返信
> 客に黙って画面設定を変更してしまうわけ?
> デスクトップ上のアイコンがごっそり移動したりして大騒動になりそうな気のせいがする。
> 少なくとも俺ならそんなソフトはポイ捨てする。
>
> 仕様レベルでの再考慮を強く強く推奨する。
もちろん客に黙って画面設定を変更してしまうなんてことはしません。ただいろいろなマシンで使ってもらうことを想定した場合、640×480だと画面が小さくなってしまう場合もあるということで、全画面表示を機能に入れたいということです。使うかどうかはユーザー次第です。現在のディスプレイ解像度をScreen,.Primary.Boundsで記録しておき、必要ない場合や完了後に解像度を戻す機能は当然つけますです。ただ、変更のコードがわからないだけなんです。
引用返信 編集キー/
■25607 / inTopicNo.4)  Re[3]: ディスプレイ解像度の変更方法を教えてください。
□投稿者/ 裕猫 (56回)-(2008/09/23(Tue) 16:29:05)
ようやくサンプルらしきものにたどり着きました。も少し自分で頑張ってみます。お騒がせしました。
解決済み
引用返信 編集キー/
■25608 / inTopicNo.5)  Re[3]: ディスプレイ解像度の変更方法を教えてください。
□投稿者/ やじゅ (659回)-(2008/09/23(Tue) 16:36:33)
やじゅ さんの Web サイト
No25606 (裕猫 さん) に返信
>必要ない場合や完了後に解像度を戻す機能は当然つけますです。ただ、変更のコードがわからないだけなんです。

Win32API(C言語)編 第63章 画面解像度の変更
http://www.geocities.jp/ky_webid/win32c/063.html

C#で使用するなら
http://www.microsoft.com/indonesia/msdn/pinvoke.aspx


「ChangeDisplaySettings C#」で検索しても、日本語ページだとソースらしきものが出てきませんね。
ウェブ全体からの検索で、見つけてた上で、「ChangeDisplaySettings」で日本語ページで検索して
他言語だけど、それで内容理解するって感じでしょうか

掲示板に質問したとしても回答がすぐ付くわけではないので、検索する技術を覚えるといいですね。
(先にMSDNサイトを見るのがいいんでしょうけど・・・)
引用返信 編集キー/
■25609 / inTopicNo.6)  Re[4]: ディスプレイ解像度の変更方法を教えてください。
□投稿者/ 裕猫 (57回)-(2008/09/23(Tue) 16:58:57)
No25608 (やじゅ さん) に返信
> ■No25606 (裕猫 さん) に返信
> >必要ない場合や完了後に解像度を戻す機能は当然つけますです。ただ、変更のコードがわからないだけなんです。
>
> Win32API(C言語)編 第63章 画面解像度の変更
> http://www.geocities.jp/ky_webid/win32c/063.html
>
> C#で使用するなら
> http://www.microsoft.com/indonesia/msdn/pinvoke.aspx
>
>
> 「ChangeDisplaySettings C#」で検索しても、日本語ページだとソースらしきものが出てきませんね。
> ウェブ全体からの検索で、見つけてた上で、「ChangeDisplaySettings」で日本語ページで検索して
> 他言語だけど、それで内容理解するって感じでしょうか
>
> 掲示板に質問したとしても回答がすぐ付くわけではないので、検索する技術を覚えるといいですね。
> (先にMSDNサイトを見るのがいいんでしょうけど・・・)
やじゅさん URLありがとうございます。検索する技術を上げたいですね。しかし前回のときも数値を数字で検索したりとうまく言葉が合わないみたいです。MSDNも見ましたが、良く分かりませんでした。 とにかく頑張ってみます。ご協力感謝、感謝です。
解決済み
引用返信 編集キー/
■25610 / inTopicNo.7)  Re[1]: ディスプレイ解像度の変更方法を教えてください。
□投稿者/ 渋木宏明(ひどり) (886回)-(2008/09/23(Tue) 17:31:23)
渋木宏明(ひどり) さんの Web サイト
>セッティングの方法(サンプルコード)のあるところにたどり着けません。

例が少ないのは、ゲームや専用端末のような特殊な場合しかやらないからです。

全画面表示機能の追加はともかく、画面解像度の変更はやりすぎと思います。

画面デザインの変更をしたくない、とのことですが、Anchor プロパティや Dock プロパティは使ってないんでしょうか?

「いろんなマシンで使ってもらうことを想定」しているとしても、今のままでは画面設定(DPI や使用フォント)によっては、はなから期待レイアウトにコントロールが配置されてないんじゃないでしょーか。
引用返信 編集キー/
■25614 / inTopicNo.8)  Re[2]: ディスプレイ解像度の変更方法を教えてください。
□投稿者/ 裕猫 (58回)-(2008/09/24(Wed) 08:25:57)
No25610 (渋木宏明(ひどり) さん) に返信
> >セッティングの方法(サンプルコード)のあるところにたどり着けません。
>
> 例が少ないのは、ゲームや専用端末のような特殊な場合しかやらないからです。
>
> 全画面表示機能の追加はともかく、画面解像度の変更はやりすぎと思います。
>
> 画面デザインの変更をしたくない、とのことですが、Anchor プロパティや Dock プロパティは使ってないんでしょうか?
>
> 「いろんなマシンで使ってもらうことを想定」しているとしても、今のままでは画面設定(DPI や使用フォント)によっては、はなから期待レイアウトにコントロールが配置されてないんじゃないでしょーか。
アドバイスありがとうございます。AnchorやDockは使用していません。通常の業務プログラムならそれでいいのですが、特殊なものを作っています。従ってコントロール自体がCGの一部となるのでコントロールの大きさ位置が相対的に移動拡大がされなければなりません。ゆえにゲームのように表示されなければならず、調べた結果画面解像度変更以外に手段がないと言う結果となりました。もしほかにコントロールを含めて拡大縮小が簡単に出来る方法がありましたらご教授いただけませんでしょうか?そちらの方法に切り替えたいと思います。ただ、DirectXが使用できないのでC#のみで確立できるという条件付ですが。よろしくお願いいたします。
引用返信 編集キー/
■25616 / inTopicNo.9)  Re[3]: ディスプレイ解像度の変更方法を教えてください。
□投稿者/ よねKEN (193回)-(2008/09/24(Wed) 09:17:56)
#実際に使うかどうかは別として

> もしほかにコントロールを含めて拡大縮小が簡単に出来る方法がありましたらご教授いただけませんでしょうか?

.NET Frameworkのバージョンや開発環境のバージョンがわかりませんが、
それらのバージョンによってはWPFを使うという手があります。

ただし、WPFアプリはWindowsアプリとはある種まったく別のアプローチと言っていいほどに、
異なる部分が多いので、既に開発を行っている段階で切替えるのは難しいかもしれません。
引用返信 編集キー/
■25626 / inTopicNo.10)  Re[4]: ディスプレイ解像度の変更方法を教えてください。
□投稿者/ 裕猫 (59回)-(2008/09/24(Wed) 10:41:38)
No25616 (よねKEN さん) に返信
> #実際に使うかどうかは別として
>
>>もしほかにコントロールを含めて拡大縮小が簡単に出来る方法がありましたらご教授いただけませんでしょうか?
>
> .NET Frameworkのバージョンや開発環境のバージョンがわかりませんが、
> それらのバージョンによってはWPFを使うという手があります。
>
> ただし、WPFアプリはWindowsアプリとはある種まったく別のアプローチと言っていいほどに、
> 異なる部分が多いので、既に開発を行っている段階で切替えるのは難しいかもしれません。
アドバイスありがとうございます。WPF調べてみました。これが使えればOKですね。しかし使えない。VisualStudio2008は自分〔自宅の)パソコンにはインストール済みなので使えますが、開発に使用している会社のパソコンはWindows2000Proで、起動ドライブに4Gしか割り当てがなくC#2005EXpressEditionしか入らない状態。|(#33)/ 爆)もともとF-BASICでの開発環境なので、社内システムもF-BASICで構築されていて、変更ができません。いずれはC#アプリに作り変えるつもりですが160ものプログラムの連携で動くシステムなので、変更だけでも2年くらいかかっちゃいます。〔涙〕 今回の開発はVistaではF-BASIC作成のプログラムが動かないため、Cへの移行が不可欠だと社長に訴えて、C#の勉強をしながら商品の開発をしようということで行われていてます。そんな状況ですので古いOSでの使用含めて考えるようにとのことで、新技術封印で作成しなければならないという枷付き開発となっています。ああ最後はぐちになってしまった。そんな状況だとご理解くださいませ。
引用返信 編集キー/
■25643 / inTopicNo.11)  Re[3]: ディスプレイ解像度の変更方法を教えてください。
□投稿者/ 渋木宏明(ひどり) (887回)-(2008/09/24(Wed) 12:27:38)
渋木宏明(ひどり) さんの Web サイト
> 特殊なものを作っています。

ということなら、表示解像度の変更は「必要」ということですね。

ただ、それでも気になるのは

>>「いろんなマシンで使ってもらうことを想定」しているとしても、今のままでは画面設定(DPI や使用フォント)によっては、はなから期待レイアウトにコントロールが配置されてないんじゃないでしょーか。

という点です。

システム設定で変更可能なのは表示解像度だけではありません。Windows Forms の場合、DPI や表示フォントの設定によっては、固定座標で配置したコントロールは意図したのとは異なる表示になることがあります。また、細かい挙動はOSによって異なったりします。

# 以前、囚人さんが勉強会のネタで取りあげていたはず。

これに関して、Windows Forms では抜本的な解決は難しいのが実際です。

「いろいろなマシンで使ってもらうことを想定」しているなら、なるべく早いうちに実機あるいは仮想環境などで、DPI や表示フォントの設定がアプリケーション画面の表示にどのような影響を及ぼすか、確認してみることを勧めます。

引用返信 編集キー/
■25649 / inTopicNo.12)  Re[3]: ディスプレイ解像度の変更方法を教えてください。
□投稿者/ じゅで (97回)-(2008/09/24(Wed) 13:00:43)
No25614 (裕猫 さん) に返信
> アドバイスありがとうございます。AnchorやDockは使用していません。通常の業務プログラムならそれでいいのですが、特殊なものを作っています。従ってコントロール自体がCGの一部となるのでコントロールの大きさ位置が相対的に移動拡大がされなければなりません。ゆえにゲームのように表示されなければならず、調べた結果画面解像度変更以外に手段がないと言う結果となりました。もしほかにコントロールを含めて拡大縮小が簡単に出来る方法がありましたらご教授いただけませんでしょうか?そちらの方法に切り替えたいと思います。ただ、DirectXが使用できないのでC#のみで確立できるという条件付ですが。よろしくお願いいたします。

各画面サイズにあわせて、描画処理をこっちでコントロールしてあげれば、
全画面表示とか使わなくても出来そうですが、そうでもないですか?
画面サイズ変更時の、縦横比は、こちらで、固定する必要があるでしょうが、
それさえちゃんとしてあげていれば、問題ない気がしないでもないです。

今想像しているのは、背景CGの一部として、ボタンなどのCGが一緒に用意されているような
超特殊な場合を想定していますが・・・

けど、ボタンとかのコントロールのイメージを、背景でそもそも描画しないで、別ものとして、
描画しておけば、こんな事をしなくてもすむような気がしてならない。

どれほど特殊な事をしているのか分からないので、いまいち漠然とした事しか答えられませんでしたが、
これは駄目ですか?
引用返信 編集キー/
■25652 / inTopicNo.13)  Re[4]: ディスプレイ解像度の変更方法を教えてください。
□投稿者/ 裕猫 (62回)-(2008/09/24(Wed) 13:16:27)
じゅで さん
渋木宏明(ひどり)さん
> 各画面サイズにあわせて、描画処理をこっちでコントロールしてあげれば、
> 全画面表示とか使わなくても出来そうですが、そうでもないですか?
> 画面サイズ変更時の、縦横比は、こちらで、固定する必要があるでしょうが、
> それさえちゃんとしてあげていれば、問題ない気がしないでもないです。
>
> 今想像しているのは、背景CGの一部として、ボタンなどのCGが一緒に用意されているような
> 超特殊な場合を想定していますが・・・
>
> けど、ボタンとかのコントロールのイメージを、背景でそもそも描画しないで、別ものとして、
> 描画しておけば、こんな事をしなくてもすむような気がしてならない。
>
> どれほど特殊な事をしているのか分からないので、いまいち漠然とした事しか答えられませんでしたが、
> これは駄目ですか?
いろいろアドバイスありがとうございます。全画面表示については上記方法含めてもう一度検討してみます。ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -