MFCでグリッドコントロールを実装する方法

このQ&Aのポイント
  • MFCでGUIプログラムを行っているが、デフォルトではグリッドコントロールがないため、独自に実装する方法を知りたい。
  • セルの入力をコンボボックスにしたり、入力制限を設けたりしたい(SpreadSheetのように)。しかし、ActiveXコントロールは使用したくない。
  • WindowsXP SP3環境のVC++6.0 MFCでの実装方法を教えてほしい。
回答を見る
  • ベストアンサー

MFCでグリッド

MFCでグリッド 現在、MFCでGUIプログラムを行っています。 MFCではデフォルトでグリッドコントロールがありません。 そこで質問なのですが、以下の条件を満たすようなグリッドコントロールをMFCで実装する 場合、皆さんはどうしていますか? ・セルの入力をコンボボックスにしたり、入力制限を設けたりしたい。(SpreadSheetのように) ・ActiveXコントロールは使いたくない(配布時、レジストリをいじりたくない) やはり、リストなどの基本的なクラスを派生させて自分でコツコツ作るしかないですか? 詳しい方がいましたら教えて下さい。 環境:WindowsXP SP3 言語:VC++6.0 MFC

  • ken2r
  • お礼率88% (82/93)

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

  • ベストアンサー
  • davidfox
  • ベストアンサー率58% (21/36)
回答No.1

SpreadSheet のような動きをするものを実装するとなるとそれなりの工数が必要なので、仕事であればまず実装は有り得ません。2つの条件のどちらかを外します。 趣味であれば工数は気にせずとも良いのですが...私の場合、熱意が持続しません... ただ、時間と熱意があれば、自分なら1から書き起こします。派生させても旨みが無いので... >基本的なクラスを派生させて リストなどを基本にした物は海外のサイトで見かけましたが、見た目はともかく、動きが悪かったので使う気になれませんでした。1000~2000行だったと思いますが、入力制限などは無かったように思います。

ken2r
質問者

お礼

ご回答有難うございました。

関連するQ&A

  • 【VC++2005】.NETのデザイナでグリッド表示させる方法

    開発環境  :VC++2005 言語    :C++/CLI、.NET2.0 テンプレート:Windowsフォームアプリケーション 上記環境にて、Windowsアプリケーションを作成しています。 デザイナにてウィンドウ上に各コントロールを配置し、 ・ウィンドウの端から各コントロールまでの距離 ・コントロール間の距離 等を一定に調整したいと思うのですが、 単に見た目で調整しても、微妙にずれてしまい一定になりません。 MFCで作成した際には、ウィンドウをグリッド表示させることで、 グリッドの間隔を見て、何ポイントで指定とかが可能だったと思うのですが。 .NETでウィンドウをグリッド表示させるにはどうすれば良いのでしょうか?

  • VB.NETとVC.NET(MFC)で互換のXMLパーサ

    WinXP Embbeded上で動作する一種の制御ソフトを 開発しないといけないのですが、 本体制御ソフトをVCで、ユーザIF(GUI)をVBで作ることにしています。 パラメータ等の設定をGUIと本体ソフトで遣り取りしないといけません。 VBソフトとVCソフトのそれぞれに互換のシリアライザ の様なものを実装して、共通のファイルを互いに 読み書きすることを考えています。 GUIは極力標準的かつ平凡なソフトにしたいので .NET Framework以外のライブラリを使うのは避け、XmlSerializerあたりを使うと良いのかと思いますが、VC(MFC)はXmlSerializerが吐き出したXMLファイルを 読めるパーサは何を選べば良いのでしょうか? XMLに拘っている訳ではないのですが、言語に 依存しない最も普遍的な方法ではないかと思っています。 XML以外で良い方法があればそれも良しです。

    • ベストアンサー
    • XML
  • VC++でActiveXコントロールを作りたいのですが

    IEから <OBJECT CLASSID="CLSID:***"></OBJECT> で使えるActiveXコントロールを作りたいのですが、よくわかりません。 VC++では、MFC ActiveX ControlWizard で、ActiveXコントロールが作れるようですね。とりあえずプロジェクトを作って、そのまま何もしないActiveXを作って、ブラウザで表示したいと思っても、どのようにしたらいいのか、そこから分かりません。 HTMLを書いて、ブラウザで表示させようとしてますが、何か抜けていたり、おかしかったりするでしょうか。 かなり情報不足かもしれませんが、何かヒントがいただければと思います。よろしくお願いします。

  • ActiveX の VC++ での利用

    ある制御装置をパソコンからの命令で動かしたいのですが,その装置の SDK が ActiveX コントロールの形で提供されています.プログラミングは VC++ で行いたいのですが,ActiveX を VC++ で利用する方法がイマイチわからず,困っております. 当方の環境は Visual Studio 6.0 または 2003 です.どちらでも利用できますが,できれば 2003 を利用したいと考えております. まず MFC アプリケーションを作成し,ダイアログエディタで右クリック→ActiveX コントロールの挿入で,使用する ActiveX コントロールを貼り付けます. ここまでは合っていますでしょうか?  私の勉強不足で申し訳ないのですが,ここから先をどう進めてよいのかわかりません. あくまでもイメージなのですが,その ActiveX が提供する関数を C コードの中で呼び出す,といった形で使用できないでしょうか? わかる方いらっしゃいましたら,よろしくお願いいたします.

  • Access2013の環境でDTPickerエラー

    Access2007/VBA で開発したプログラムのMDEを客先にインストールしたところ、エラーが発生しました。 環境: Windows7 Access2013がインストールされている。 フォーム上に日付入力用のテキスト及びカレンダー表示用のActiveXコントロール_コンボボックス(DTPickerでカレンダー表示)を配置してあります。 Form Loadで日付に初期値を設定するコードで、 ”実行時エラー:このコントロールにはオブジェクトがありません。”となります。 MSCOMCT2.OCX をSystem32にコピーして、レジストリ登録はしてあります。 同様の環境で他客先のPCでは正常に動作します。 添付画像は、自社PCで起動したAccessのフォームのデザイン画面です。 客先では、このActiveXコントロール_コンボボックスの▼が表示されず、ActiveXコントロールが 無効になっているようです。 原因がどうしてもわからず困っています。 おわかりになる方がおられましたらお教え頂きたく、お願い致します。

  • VC++6.0 MFC 日時指定コントロールの秒へのセットフォーカス

    VC++6.0 MFC 日時指定コントロールの秒へのセットフォーカス 以下の環境でプログラミングを実施しています。 開発環境:Visual Studio 6.0 言語:Visual C++ プロジェクト:MFCアプリケーション 日時指定コントロールのスピンを最初にクリックすると 時間が変化しますが、これを初期設定で秒にしたいのですが どうしたらいいのか全くわかりません。 教えてください!

  • メンバ関数テンプレートの仮想関数。

    VC8.0言語処理系でメンバ関数テンプレートを仮想関数にしたらエラーになりました。 これは、VC8.0言語処理系の対応なのでしょうか? それともC++言語系の仕様なのでしょうか? 今回、メンバ関数の一部にイテレータを使用していまして、その関係で一部の関数がテンプレートになっています。 そして、基底クラスでは実装せず、派生先で実装を強制する純粋仮想関数としたのですが、この処理がコンパイルエラーとなっています。 メンバ関数の参照などを考えたのですが、どうも巧くコンパイルでき無そうです。 この処理が出来ないことは設計段階で把握していなかったので、これが出来ないとすると設計のし直し(テンプレートの廃止など)をしなくてはいけません。 詳しい方がいらっしゃいましたら、お願いします。

  • MFCでプログラミングしたことがなく、皆目わからず、途方に暮れております。

    開発言語はVC++2005です。 Cは構文程度は理解しています。 新規作成 - プロジェクト - MFCアプリケーションという具合にすると、フレームワークを作ってくれますので、実行すると何もしないアプリができます。 MFCでプログラミングしたことがなく、どこにどうコードを埋め込んで行けば動作するのか皆目わからず、途方に暮れております。 手始めに、以下の3つをやってみたいのですが、MFCの肝はなんでしょうか? 1. ボタンを押して、「Hellow World」メッセージボックスを表示させたい。 2.マウスで、ある領域をクリックすると、小さい円を描画する。 3. テキスト入力域に 「Yes We Can!」を入力しエンターすると、オバマ大統領のBMP画像を中央に表示させたい。 3はギャグですが、よくよくソケットを使って簡単なメールアプリを作りたいと思っています。 道筋を指南してくださる方、よろしくお願いいたします。

  • ActiveX の WebBrowser コントロール上で、フォームのボタンを「クリックする」動作

    ActiveX の WebBrowser コントロール上で、フォームのボタンを「クリックする」動作をソフトで行いたいのですが、方法をご存知の方がおられましたらご教授いただけませんでしょうか。目的は Webからのフォーム入力を支援するソフトの作成です。 以下のようなケースを想定しています 1.Webからフォーム入りのページを WebBrowser コントロールで取得し 2.取得したドキュメント内の文字入力欄等にデフォルト値を差し込み 3.加工したドキュメントをWebBrowser コントロールに戻し 4.そのままフォームの送信ボタンを押された動作を行う ことにより、必要な情報を誤りなく入力できるようにするものです。 Navigate や Navigate2 で、直接フォーム入力を送信するのではなく、あくまで「クリックしたことにする」方法をとりたいと思っています。 なんとなく、セキュリティへの配慮からサポートされていないのかな?という気もしなくないですが、ご存知の方がおられましたら教えていただければと思います。 環境は IE5以降、VC++ (MFC)で作成しています。(VS6)

  • [VC++][MFC][SDI]ダイアログコントロールもしくわツールバー!!詰まってます!!

    現在VC++6.0でMFCを使いSDIのプログラムを作っているのですが、フォームにダイアログバーを張っています。 これをツールバーのように自由に動かしたり、左右上下にドッキングさせたり。 これって実現可能でしょうか? 色々ためしてみたんですが無理でした。 やっぱ不可能ですかね? これが無理なんであればデフォルトで作成されるツールバー([新規作成][開く][保存]等が入ってる)にコントロール(ボタンやリストボックス)を追加して使用、と考えているのですがこれも難しい!!! まだまだ未熟者なのですがどうかご存知の方おられましたらご教授ください!! よろしくお願いします!!

専門家に質問してみよう