MSFlexGridの使用法について

[戻る]
浪人 2003/10/23(木) 23:54:21
WinNT VC++ 6.0  MFCです。
MSFlexGridを使って表を作りたいのですが
MSDNにはVB版しか記載されていません。
これについての知識は何を利用したらよいのでしょうか?
MSFlexGridを使われているかたにお聞きします。
よろしくお願いします。

たいちう 2003/10/24(金) 00:07:27
http://ayusya.hp.infoseek.co.jp/http://www.bcap.co.jp/hanafusa/
後者はVBだけど、なんとなく判るでしょう。
これで足りないときは、試行錯誤。

s 2003/10/24(金) 18:17:32
リストより良いです。ソートも簡単だし。vbとは結構似てます。

浪人 2003/10/27(月) 00:04:55
[[解決]]
たいちう さん sさん ありがとうございました。
お蔭様で解決しました。
もうひとつ質問したいのですが「あゆしゃ」さんのサンプルを変更して
マウスによるカット&ペーストを追加したいのですが変更可能でしょうか?
VK_SHIFTと矢印キーでの選択はできるようですが、マウスでの選択がうまくできません。
お気づきの点がありましたらお聞かせください。

たいちう 2003/10/27(月) 10:07:10
> もうひとつ質問したいのですが「あゆしゃ」さんのサンプルを変更して
> マウスによるカット&ペーストを追加したいのですが変更可能でしょうか?
> VK_SHIFTと矢印キーでの選択はできるようですが、マウスでの選択がうまくできませ
ん。
> お気づきの点がありましたらお聞かせください。

どのサンプルでしょう?
例えば「ビットマップを表示するサンプル」でしたら、方向キーでの選択も
マウスでの選択も可能でしたが。(当方VC6+SP5, WindowsXP/Professional)

変更可能でしょうか?と聞かれたら、多分可能でしょうと答えますが、
もっと質問を具体的にしてください。
元にしたサンプル、追加したい機能の詳細、変更した点、問題点などです。

浪人 2003/10/27(月) 23:55:12
ご意見ありがとうございます。

>どのサンプルでしょう?
MSFlexGridCtrolサンプルです。
 
>もっと質問を具体的にしてください。
>元にしたサンプル、追加したい機能の詳細、変更した点、問題点などです。
(1)cellをダブルクリックの後、cellの文字列すべてを選択状態する。
(2)マウスでカーソルを移動して部分文字列を選択する。
   
(1)は修正できました。
ダブルクリックの場合は
ShowCellEdit( LPCTSTR buff )関数の
  // 選択状態を解除する
  pEdit->SendMessage( WM_KEYDOWN, VK_RIGHT );
を実行しない。

(2)がうまく修正できてないです。
以上です。よろしくお願いします。

たいちう 2003/10/28(火) 09:56:17
CGridDlgDlg::ShowCellEdit()の最後に

pEdit->SetCapture();

を追加。::ReleaseCapture()もどこかで行う必要があるような気がしますが、
なしでも動くようです。動作とソースの確認をしてください。
(動作の確認とは浪人さんの望むとおりの動作かどうか。十分な仕様の説明が
 されているとは思えません。)

浪人 2003/10/30(木) 00:35:43
たいちう さんありがとうございました。
SetCaptureで部分文字列の選択ができました。
たびたびすみませんもうひとつわからないことがあるのですが。

ひとつのセルに複数行のデータ(cr区切り)を入れてコピーし、
他のセルにペーストするとそのセルから複数セルに分かれてペースト
されます。
ひとつのセルにペーストが可能ですか。時間がとれないので実験が2,3日後
になるのですが、何かよい方法がありましたらお聞かせください。

たいちう 2003/10/31(金) 15:18:41
人に聞く前に自分でソースを読みなよ。
かなり親切なコメントがあるし、だいたい判ると思うけど。

void CGridDlgDlg::CellPaste( CString st )

↑で文字列を貼り付けているけど、このとき、stを解析して何行×何列の
セルにコピーするか判断してます。解析というほどのことはないけど。
この判断をしないで、これを常に1つのセルに貼り付けるようにすれば良い。

浪人 2003/11/05(水) 00:43:09
たいちうさんありがとうございました。
お蔭様でMSFLexGridよく理解できました。

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