• ベストアンサー

オリジナル・コントロールの作成VC++6

こんにちは。 参考書を見ながらCでWindowsのプログラムを書いていこうと思ってますが、実際のアプリケーションには本に出ていないコントロールが実装されています。これらはどうやっているのでしょうか? 例:  メニューにアイコン?が表示される物  チェックボックスやアイコンの付いたリスト  表示の関係で>>の様な場所をクリックすると隠れたメニューが出てくる  3ペインのウインドウなどでドラッグするとウインドウを抜け出す(フローティング・ツールバーの様な物) などなど、挙げるときりがないのですが、コモンコントロールにも見あたらないようでして、これらは1から「自前で実装」されているのでしょうか? Delphiにはかなり便利なコントロールが多いのですが。 乱筆ですがどなたかアドバイスをお願いいたします

質問者が選んだベストアンサー

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★この質問読んでみて。 >実際のアプリケーションには本に出ていないコントロールが実装されています。  ↑  持っている本には書かれていないだけではないのですか? >メニューにアイコン?が表示される物  ↑  (1)メニューにビットマップを割り付ければ出来ます。  (2)メニューをオーナードローしても出来ます。 >チェックボックスやアイコンの付いたリスト  ↑  『リスト』とはリストボックスですよね。  (1)チェックボックス付きのはリストビューというコントロールを使います。   このコントロールでチェックボックスをだしてヘッダ部分を非表示にすれば良い。   ※見た目はチェックボックス付きのリストボックスになります。  (2)アイコン付きのリストボックスもリストビューを使うことで実現可能です。   ヘッダ部分を非表示にすればリストボックスのように見えます。 >表示の関係で>>の様な場所をクリックすると隠れたメニューが出てくる  ↑  これはオーナードローで『>>』を描画してそこをクリックされたらプログラムで  隠れているであろうメニュー項目を動的にメニュー登録すれば良いだけです。 ・回答者 No.2 さんのお礼にある >やはり標準で手軽に利用させてくれるコントロールとしては無いんでしょうね…  ↑  既存のクラス、ライブラリを使えば簡単なこともあります。  それらを利用すれば例えば『スプリット・ウインドウ』などが簡単に実現できます。  自分で実装する場合は http://hp.vector.co.jp/authors/VA016117/splitwnd.html の  サイトなどを参考に作ることも出来ます。アイディアしだいかな。 >チェックボックス付きリストやアイコン付きメニューは完全にお手上げです。  ↑  これはさっき紹介したね。  リストビューを使えば『お手上げ』にはならない気がしますけど。  リストビューというコモンコントロールは使ったことがありますか?  他にもツリービューとかいろいろとあります。 ・以上。オリジナル・コントロールの作成は結構面倒ですよ。スキルアップの為なら良いが…。

mercury_00
質問者

お礼

おはようございます。 丁寧な解答ありがとうございます、頑張ってみます!質問の内容はもう古い物だと思うんですがのですが、最近は色々変わったインターフェイスが出てきて調べが甘かったです。 >オリジナル・コントロールの作成は結構面倒ですよ だと思います、1から全部構築となると負担は大きいですよね・・

その他の回答 (3)

  • clsdi99
  • ベストアンサー率63% (31/49)
回答No.4

英語のサイトですが、いろいろな人がいろんなコントロールを公開しているサイトがあります。 ほとんどがソース付ですので勉強してみてください^^ http://www.codeguru.com

参考URL:
http://www.codeproject.com
  • maguro999
  • ベストアンサー率21% (59/273)
回答No.2

Win32APIを直接利用する。 >表示の関係で>>の様な場所をクリックすると隠れたメニューが出てくる これにいたってはプログラム的に手動で処理を作れるでしょうね。

mercury_00
質問者

お礼

解答ありがとうございます やはり標準で手軽に利用させてくれるコントロールとしては無いんでしょうね… >> ↑については自力で何とか成りそうな気もしますが、チェックボックス付きリストやアイコン付きメニューは完全にお手上げです。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

ドッキングウィンドウは下記のサイトのクラスを使用して作ったことがあります http://www.datamekanix.com/

mercury_00
質問者

お礼

ありがとうございます. 標準の物や読んだ数が少ないですが参考書にある物は、実際見るアプリケーションより、気の利いたコントロールが出てくることが多いのですが…さて…どうやれば…リンク先見てみます. 引き続きアドバイスいただける方がいましたらよろしくお願いいたします.

関連するQ&A

  • Delphi5でドッキング・フローティングできるツールバー

    Delphi5でワードパットのようなドッキング・フローティングできるツールバーを作るにはどうしたら良いでしょうか。 ドッキング・フローティングだけだったら作成できるんですが、たとえばWindowsのワードパットはツールバーをフローティングさせると、テキストを入力する部分が自動的に上にそろえられますよね。(テキスト部分が上方向に大きくなって、元ツールバーがあった部分を埋めてしまう。) あれって、どうやってつくるんでしょうか? 参考ページなど教えてください。

  • VC6 コントロールウインドウの表示

    こんにちは、honiyonです。  VC6を使用しています。  ダイアログを作成中に誤って ボタンやスタティックテキスト等コントロールのリストが表示されているコントロールウインドウを閉じてしまいました。  メニュー等を探しても、再び表示する為の操作が見つからず困っています。  初歩的な質問でお恥ずかしいですが、表示させる方法を教えてください。  宜しくお願いします(..

  • ツリーコントロールの開閉アイコンの変更

    こんにちは。Windows上でプログラムをしています。 ツリーコントロールをダイアログに貼り付けているのですが、開閉アイコン「+」「-」のアイコン変更はできるものなのでしょうか? 「+」「-」のアイコンをVisualStudioのプロジェクトのプロパティダイアログの左ペインに表示されているような三角形に変更したいと思っています。

  • コントロールパネルの在り処

    知人から[スタート]メニューからのコントロールパネルの起動が覚え辛いため、「コントロールパネルのショートカットをデスクトップに置いて欲しい」と頼まれたのですが、[スタート]メニューにあるコントロールパネルのアイコンをドラッグしたり右クリックメニューを見てもショートカットを作ることができません。 どうにかコントロールパネルのショートカットを作ることはできないでしょうか?

  • タイトルバーと同機能のスタティックコントロール

    VC6.0 MFC ダイアログで常駐アプリを作っているものです。 タイトルバーを非表示にし、タイトルバーに似せたビットマップを 作成し、スタティックコントロールに貼り付けています。 そこで、このビットマップにタイトルバーと同様の機能をもたせたいのですが、 タイトルバー上をドラッグ&ドロップでウィンドウを移動させる方法が どうしてもわかりません。 ウィンドウを移動させる方法はわかっているのですが、 スタティックコントロールに機能を実装する事ができません。 どなたかご教授ください。よろしくお願い致します。   

  • ボリューム・コントロール

    ボリュームの調整をしようとして、ツールバーのボリューム・コントロールのアイコンをクリックすると DOS画面が一瞬現れボリューム・コントロールが表示されなくなりました。 何が原因なのでしょうか?また 直す方法はあるのでしょうか? (復元を試みましたがだめでした) 宜しくお願いします。 

  • アクロバットリーダーの表示ウインドウがツールバーに戻りません

    アクロバットリーダーのメニューバーで 『ウインドウ→ツールバー→表示』 をチェックすると メニューバーに表示が追加されますが、 これをメニューバーの外にドラッグした所、 ウインドウ化されてしまい ツールバーに戻らなくなってしまいました。 どうすれば、メニューバーに戻すことが 出来るでしょうか?

  • アイコンの新規作成について

     Windows7をはじめて使っています。  デスクトップ画面で、IE8のアイコンを、中央に持ってこようとして、上に並んでいるアイコンンからドラッグアンドペーストしようとしたとき、誤って、そのアイコンが消えてしまいました。  IE8へのアクセスは、下のツールバーからできるのですが、デスクトップへの、アイコンの復活のさせ方がわかりません。  よろしく、ご教示ください。お願いいたします。

  • ダイアログ上コントロールの動作について

    MFCでダイアログにて動作するアプリケーションを作成しています。 表示されたダイアログの枠をドラッグすると、ダイアログの大きさが変わりますが、 中にあるコントロールの大きさ・位置は変わりません。 ダイアログの大きさ変更に伴い、コントロールの大きさも変更するには、 どのような実装の仕方をすれば良いのでしょうか? 解決法をご存知の方おられましたら、ご教授お願い致します。 開発環境はVC++2005です。

  • SDIのコントロールを隠す

    Visual C++ .NET2003で勉強中の初心者です。 参考書を見ながらSDIでプログラムを作成しています。 いろいろコントロールをつけたりしているのですが, メニュー等を使用しておらず,ダイアログベース で作成したプログラムみたいですが配布を考えています。 以下について教えてください。 ・不要な(まだ使用していない)メニューやツールバーを 非表示するにはどうするのがベストでしょうか? ダイアログベースのような画面にしたいです ・作成したコントロールを無効(見えない動かない)にするにはどうすれば良いのでしょうか? 配布時は無効,個人的に利用するときは有効としたいので,削除できません。 よろしくお願いします。