編集可能な表を作成する方法

[戻る]
朝霧 2007/10/31(水) 20:52:14
環境:VC++.NET MFC Windows XP 
VC++初心者です。

現在ダイアログベースでアプリケーションを作成しおります。
そこで、任意のセルへ数値を入力できるような表を作成したいと考えております。

セルの数は、1ブロック=縦6×横20の計120で、これを4ブロック作成予定です。
エディットBOXで作成しようとすると、480個も配置しなければならない為、
賢明ではないと思います。

エクセルまで高機能でなく、ただエディット編集ができれば良いと考えております。
書籍等で検索してみましたが、何となく描画で実現できるのかなぁという感じがしてい
ます。

他に良い方法があれば御教授頂きたいのですが、宜しくお願い致します。

επιστημη [HomePage] 2007/10/31(水) 21:42:31
たとえばマウスクリックされた点にEditBoxを置けばいいでしょうね。

しま 2007/11/01(木) 03:14:40
επιστημη氏の内容の補足です
編集入力用の EDITBOX は1つだけでいいので予め用意しておきます
これを入力対象の領域の大きさと位置とに合わせて(例えば MoveWindow()
で----勿論子ウインドーの上下関係には注意が必要)、見えるようにして
(ShowWindow(WS_SHOW)などで)、EDITBOX にフォーカスをあてれば
入力できる状態になるわけですね

すでに値のある位置に移動した上での編集の場合は、値を EDITBOX に
入れてやらなければ不親切というものです
この場合でも、どのような編集方針をとるか決めなければやはり不親切な
ユーザーインターフェース(UI)になるでしょう
(例えば、現在値全体を選択状態にするとか、右端に追記する状態にするとか
ほったらかしにするとか)

編集(EDITBOX での入力)の完了をどうするかも大切ですね

コピーアンドペーストはどうするとか色々決めることはあるでしょうし、
エディットボックスの移動をどうするかも考えないと使い難いものになるでしょう

たいちう 2007/11/01(木) 09:25:21
定番なのはMSFlexGridとEditを組み合わせる方法です。
お世辞にも良い方法とはいえず、私は嫌いですが。

参考になるかもしれないリンク。

http://hanatyan.sakura.ne.jp/
VB6.0関係 → カテゴリ別サンプル一覧 →
MSFlexGrid関係 → セルに直接データーを入力する

http://ayusya.hp.infoseek.co.jp/index2.html
プログラムの世界 → C言語の世界 →
ツール集 → CMSFlexGridCtrlについて

# グリッドをどうするかについては、いまだ悩みます。

朝霧 2007/11/01(木) 10:18:17
[[解決]]
επιστημη様、しま様、たいちう様、御教授有難う御座いました。
このような方法もあるのだと、大変参考になりました。

一度、作成して試してみます。

どうも有難う御座いました。

古いスレッドには追加発言できません。