ListViewでUnocodeを表示するには?

解決


くろねこ  2004-02-09 14:22:37  No: 111722  IP: [192.*.*.*]

お世話になります。くろねこと申します。
開発環境:Win2000  VB6-SP5

テキストファイルの内容を「Microsoft Windows Common Controls6.0 (SP4)」のListViewに表示しているのですが、今回ファイルの記述がUnicodeとなるため、代用としてDataGridを利用しようと考えています。
そこでご相談なのですが、ListViewに似た機能を持ち合わせていて、代用(Unicodeの表示が可能)できそうなものをはありますでしょうか?
基本的に、表形式での表示が可能であればなんでもよいです。

以上。よろしくお願いいたします。

編集 削除
魔界の仮面弁士  2004-02-09 14:37:30  No: 111723  IP: [192.*.*.*]

VB6のDataGridはUnicodeに対応していますが、ListViewはそうではありません。

APIを使ってListViewを生成すれば Unicode対応も可能ですが、
その場合、イベント処理やプロパティ操作等、全ての処理を
APIを使って記述しなければいけなくなります。


> 表形式での表示が可能であればなんでもよいです。
付属のコントロールでは、DataGrid ぐらいしか無いですね。。。
# あとは DBGrid 程度。(お奨めできませんが)

付属のコントロール以外にも目を向けるなら、
  WebBrowserコントロール
  Microsoft Spreadsheetコントロール (Office 2000以上に付属)
といった候補もあります。

編集 削除
くろねこ  2004-02-09 15:51:01  No: 111724  IP: [192.*.*.*]

>付属のコントロール以外にも目を向けるなら、
>  WebBrowserコントロール
>  Microsoft Spreadsheetコントロール (Office 2000以上に付属)
>といった候補もあります。

Microsoft Spreadsheetコントロールを試してみました。
今回、文字列を表示するだけなので、非常に使いやすく思えました。
罫線の設定でListViewのように見せることも出来ますし。
あとは、エンドユーザーでOffice関係のインストールが出来れば問題なしといった感じです。

実はDataGridを使ったことがなかったのですが、単純に表示する行列を指定し、.text="〜"みたいな感じで利用できないのでしょうか?(私が使用方法を知らないだけかな・・・)
MSDNなどのサンプルを見てもいまいち分かりづらく質問させていただきます。

以上。よろしくお願いします。

編集 削除
魔界の仮面弁士  2004-02-09 16:25:37  No: 111725  IP: [192.*.*.*]

> あとは、エンドユーザーでOffice関係のインストールが出来れば問題なしといった感じです。
ちなみに、Officeがインストールされていない場合は、コントロールを
読取専用モードでしか利用できないという制限がつきます。
http://support.microsoft.com/default.aspx?scid=kb;JA;288732

> 実はDataGridを使ったことがなかったのですが、単純に表示する行列を指定し、.

DataGridは、アンバウンド(非連結)モードを備えていません。
何らかのデータソース(ADODB.Recordsetを使うのが一般的です)を用意する必要があります。

以前、サンプルプログラムを投稿した事がありますので、参考にしてみてください。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200306/03060044.txt

編集 削除
くろねこ  2004-02-09 21:10:32  No: 111726  IP: [192.*.*.*]

>DataGridは、アンバウンド(非連結)モードを備えていません。
>何らかのデータソース(ADODB.Recordsetを使うのが一般的です)を用意する必要があります。
>
>以前、サンプルプログラムを投稿した事がありますので、参考にしてみてください。
>http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200306/03060044.txt
失礼いたしました。過去の掲示板にサンプルがありましたね。

サンプルを動作させ、表示方法については分かりました。
とりあえず、「DataGrid」と「Microsoft Spreadsheet」のプロパティとメソッドを色々使ってみて、検討して行きたいと思います。
ただ、「DataGrid」って色々面倒くさそうな分部を多々含んでいるように思えました、例えば選択された一行をハイライト表示させるだけで、結構準備がいるようですし。

魔界の仮面弁士様、貴重なアドバイス本当にありがとうごましました。

編集 削除