none
ツールボックスのコントロールが使用できません RRS feed

  • 質問

  • ツールボックスで右クリックして【すべて表示】にし、ダイアログにコントロールを貼り付けようとしても、貼り付けられません。

    コントロールは、グレー表示になっていて選択できません。

    コレを選択可能にして、ダイアログに貼り付けるには、どうすれば良いのでしょうか?

    【環境】

    ・Windows 7

    ・Visual Studio 2010 Professional

     

    2010年11月8日 7:50

回答

  • >MFCで使用できる同じようなコントロール

    見当たらないですね。

    考えられる手としては以下の手段が思いつきます。

     

    1.CWinFormsControlWndを利用して、DataGridViewを利用する

      C++/CLI(/clr)でCompileする必要があります。

      ToolBoxには出てきません。

    2.ThirdParty製のControlを購入する

    3.MFCをやめてC#やC++/CLIで.NET Applicationを開発する

    4.必要な機能のみを抽出してFlexGrid Controlを自作する

    5.ExcelをActive X Controlとして利用する

      Excelが必要になります。Automationを利用します。 

      Dialog Resource上で右Clickをすると”Active X コントロールの挿入”が選択できます。

      その一覧の中にスプレッドシートがあります。

    • 回答としてマーク 真希 2010年11月10日 3:48
    2010年11月9日 8:31
  • プロジェクトとコントロールの使用可否のマトリックスとかは無いのですか?

    灰色で表示された、あるいはデフォルトでは表示されないコントロールは使えないということぐらいでしょうか。

    C++ ネイティブプロジェクトのダイアログエディタで使えるコントロールはそんなにありません。
    デフォルトで「ダイアログ エディター」として表示されるコントロールまでが標準で、サードパーティー製の ActiveX コントロールを別途追加するかどうかだとお考えください。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク 真希 2010年11月10日 3:48
    2010年11月9日 13:50
    モデレータ

すべての返信

  • Projectの種類によって使用できる項目とそうでない項目があります。

    例えば、C/C++ Windows API ApplicationでForms関係のControlは選択できません。

    Third Party製のControlなど別途InstallしたControlについては、使用条件をご確認されてはいかがでしょうか。

    2010年11月8日 13:15
  • おそらくは kozz さんが指摘されているとおりだと思いますが、念のため。

    もし、納得がいかない、あるいは書いてある内容と一致しない場合は、プロジェクトの種類と、貼り付けたかったコントロールの名称とそれが含まれるタブの名前などを明示してください。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2010年11月8日 13:57
    モデレータ
  • 念のため。
    コントロールを利用したいからといって安易にプロジェクトを選択しないようにしましょう。

    たとえば、CLR プロジェクトの Windows フォームアプリケーションプロジェクトを選択すると、多くのコントロールが利用できるようになります。
    反面、C++/CLI という C++ を拡張した新しい言語となること、参考文献が少ないこと、IntelliSense が効かないこと、.NET Framework が必須となることなど、いろいろと変わってきます。

    要件に照らして、何が最適なのか、この選択をすることでどういった効果・影響が出るのかを考えて決めるべきです。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2010年11月8日 15:49
    モデレータ
  • kozz さん、Azulean さん、ありがとうございます。

    プロジェクトは、MFCアプリケーションのダイアログベースです。

    貼り付けたいコントロールは、DataGridView です。

    プロジェクトとコントロールの使用可否のマトリックスとかは無いのですか?

     

    よろしくお願いします。

    2010年11月8日 23:03
  • こんにちは。

    似たようなスレを見つけました。
    http://social.msdn.microsoft.com/Forums/ja-JP/vcgeneralja/thread/8efba7ff-a532-40bd-a20f-6446a78f43a4

    DataGridViewは、CLRのようですね。
    MFCでは利用できなそうですねぇ・・・

    2010年11月9日 3:12
  • どらちんさん、ありがとうございます。

    Visual C++ 6.0 では、FlexGrid がありましたが、Visual C++ 2010 のMFCで使用できる同じようなコントロールは無いのでしょうか?

    2010年11月9日 4:35
  • >MFCで使用できる同じようなコントロール

    見当たらないですね。

    考えられる手としては以下の手段が思いつきます。

     

    1.CWinFormsControlWndを利用して、DataGridViewを利用する

      C++/CLI(/clr)でCompileする必要があります。

      ToolBoxには出てきません。

    2.ThirdParty製のControlを購入する

    3.MFCをやめてC#やC++/CLIで.NET Applicationを開発する

    4.必要な機能のみを抽出してFlexGrid Controlを自作する

    5.ExcelをActive X Controlとして利用する

      Excelが必要になります。Automationを利用します。 

      Dialog Resource上で右Clickをすると”Active X コントロールの挿入”が選択できます。

      その一覧の中にスプレッドシートがあります。

    • 回答としてマーク 真希 2010年11月10日 3:48
    2010年11月9日 8:31
  • プロジェクトとコントロールの使用可否のマトリックスとかは無いのですか?

    灰色で表示された、あるいはデフォルトでは表示されないコントロールは使えないということぐらいでしょうか。

    C++ ネイティブプロジェクトのダイアログエディタで使えるコントロールはそんなにありません。
    デフォルトで「ダイアログ エディター」として表示されるコントロールまでが標準で、サードパーティー製の ActiveX コントロールを別途追加するかどうかだとお考えください。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク 真希 2010年11月10日 3:48
    2010年11月9日 13:50
    モデレータ
  • kozz さん、Azulean さん、どうもありがとうございました。
    2010年11月10日 3:57