RADツールを使用しないでリストビューを生成する方法について

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: RADツールを使用しないでリストビューを生成する方法について

RADツールを使用しないでリストビューを生成する方法について

by me262 » 2005年12月15日(木) 14:08

淡幻星さん,素早く的確な情報を大感謝です。
勿論一発で生成できました。
lpClassName = "SysListView32"
この定義がなかなか見付かりませんでした。
これで本日快晴となりました。うーん3日間何だったのだろう。

RADツールを使用しないでリストビューを生成する方法について

by me262 » 2005年12月15日(木) 13:33

> http://www.mitene.or.jp/~sugisita/vb6_cmctl.html
> ここにVBでのサンプルがありますが、どうですか?

VB.NETを持っているのでコードは確認できましたが,やはりlpClassNameの
WC_LISTVIEWをABは無効な識別子と言い張ってしまいます。
hListViewWnd(Bn) = CreateWindowEx_
(
WS_EX_CLIENTEDGE,
WC_LISTVIEW,
"",
WS_CHILD or WS_VISIBLE or WS_BORDER or WS_CLIPSIBLINGS or   WS_CLIPCHILDREN or LVS_REPORT,
xb,yb,bw,bh,
hWnd,
NULL,
GetModuleHandle(0),
NULL,
)
コモンコントロールのイニシャライズをやっていなかったので,これは追加
しましたが,生成されないことに変わりはありませんでした。
RADツールでの初期設定で,APIに関してコモンコントロールを使用する際の
チェックがありますが,ツールを使用しない場合のこれに変わる設定は,
#include<api_commctrl.sbp>
InitCommonControls()
で良いかも分かっていません。→一応デバッグはパスしますが

Re: RADツールを使用しないでリストビューを・・・

by 淡幻星 » 2005年12月15日(木) 13:09

おぉ、なんか親近感が沸きました!
最近リストビューの使い方を勉強中の淡幻星です(^_^)
よろしゅ~(笑)。
<ご質問事項>
通常のウィンドウ生成(クラスデータ設定→クラスの登録→生成)に対して何
か特別な設定がありますか。生成させるための事前設定は?
とくにありません(そのはず)。
#include <api_commctrl.sbp>は一応記述
ABで定義されていないリストビューのクラス名(lpClassName=)は?
試行錯誤の上”LISTVIEW”と記述
詳細なコードはお手数を掛けますので,ポイントのみで結構です。
ヘルプには載っていませんが、リストビューのクラス名は
lpClassName = "SysListView32"
で定義されていますので、親窓hWndに対しての作成はこんな感じです。

コード: 全て選択

InitCommonControls()
hListView = CreateWindowEx( NULL, "SysListView32", NULL, _
		WS_CHILD or WS_VISIBLE or LVS_REPORT , _
		0, 0, 360, 240, _
		hWnd, ID_ListView, _
		GetModuleHandle(0), NULL )
参考までに、
作成したリストビューに対して一行選択やグリッド表示、
チェックボックス付加を設定する場合は、
下記のようにすると出来ます。

コード: 全て選択

Dim hAny As Long
Dim ic As INITCOMMONCONTROLSEX

'リストビューの拡張設定
'※チェックボックス付・1行選択・グリッド表示を許可
hAny = GetDlgItem( hWnd, ID_ListView )
ic.dwSize = Len( ic )
ic.dwICC = ICC_LISTVIEW_CLASSES
InitCommonControlsEx(ic)
SendMessage( hAny, _
		LVM_SETEXTENDEDLISTVIEWSTYLE, _
		LVS_EX_CHECKBOXES or LVS_EX_FULLROWSELECT or LVS_EX_GRIDLINES, _
		LVS_EX_CHECKBOXES Or LVS_EX_FULLROWSELECT or LVS_EX_GRIDLINES )
エラーしましたら、すいません。
自分のコード(AB3)からリストビューの部分だけを貼り付けたので、何らかの不整合があるかもしれません。


ちなみに、BackSearchABで「チェックボックスについて」で
検索するとヒットするログ(1件)に、
AB2版でのリストビューの作成方法+その拡張スタイルの扱い方が載っています。
AB2→最新版(AB4)へ移植をされている方向けだと思います。
そちらログでは使うAPIや構造体をいろいろ定義していますが、
最新版ではapi_commctrl.sbpをインクルードするだけで十分です(そのはず)。
(もちろん「リストビュー」で検索すれば、たくさん引っかかります)


蛇足ですが、ABのRADでは拡張スタイルにWS_EX_CLIENTEDGE(縁が沈んで見える境界線を持つウィンドウを作成)をデフォルト指定していますね。

さらに蛇足ですが、質問内容がすごく分かりやすくて、答えるのが楽でした(^_^)。

by ゲスト » 2005年12月15日(木) 11:35

http://www.mitene.or.jp/~sugisita/vb6_cmctl.html
ここにVBでのサンプルがありますが、どうですか?

RADツールを使用しないでリストビューを生成する方法について

by me262 » 2005年12月15日(木) 11:05

RADツールを使わない派です。
ver2.59で作成した統計ソフト(社内ソフト)の機能向上と同時に,最新verへ
の置換えを行なっています。
ver2.59では出力結果をTEXT出力,又はEDITへのデータ書き込みなどで行なって
いましたが,分散分析のように出力結果が多いと,ウィンドウ全体の見栄えが
正直あまりよくありません。
そこでデータ表示の見た目がよいリストビューに出力しようと思っています
が,ここ数日トライしているものの,親ウィンドウへリストビューを生成する
こともできていません。→生成命令記述部でアクセス違反発生
ABのヘルプにはリストビューに関する記述が一切ないので,どなたか数日間の
暗闇を明るくして頂きたいのですが。
<ご質問事項>
通常のウィンドウ生成(クラスデータ設定→クラスの登録→生成)に対して何
か特別な設定がありますか。生成させるための事前設定は?
#include <api_commctrl.sbp>は一応記述
ABで定義されていないリストビューのクラス名(lpClassName=)は?
試行錯誤の上”LISTVIEW”と記述
詳細なコードはお手数を掛けますので,ポイントのみで結構です。
しかし何でこんな簡単なことが~。

ページトップ