• ベストアンサー

リストビューに隠しパラメータ

お世話になります。 現在リストビューに、列幅0の隠し列を用いてデータをやりとりしています。この方法以外に個々の行にパラメータを与えることは可能でしょうか? ウィンドウハンドルにパラメータを与えることでウィンドウプロシージャに値を渡す(やり方忘れました)ように、リストビューの個々の行に値を格納できるのではないかと思うのですが・・・ 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★アドバイス >個々の行にパラメータを与えることは可能でしょうか?  ↑  可能です。  lParamを使います。 ・ListView_SetItem() マクロで設定します。  ListView_GetItem() マクロで取得します。 ・『ListView_GetItem ListView_SetItem lParam』をキーワードで  検索するといろいろ見つかります。 参考資料: ListView_SetItem( hWndListView, pitem ); ListView_GetItem( hWndListView, pitem ); typedef struct _LVITEM {  UINT mask;  int iItem;  int iSubItem;  UINT state;  UINT stateMask;  LPTSTR pszText;  int cchTextMax;  int iImage;  LPARAM lParam; } LVITEM, FAR *LPLVITEM; 参考URL: http://bu-nyan.m.to/sdk/sdk18.htm http://wisdom.sakura.ne.jp/system/winapi/common/common15.html 以上。

参考URL:
http://bu-nyan.m.to/sdk/sdk18.htm
masaota56
質問者

お礼

ありがとうございます。早速試してみます

関連するQ&A

  • リストビューのハンドルについて

    リストビューコントロールのハンドルについて疑問に思う事がありまして、ご教授よろしくおねがいします。 通常リストビューをCreateWindow()で作成した時に戻り値として受け取るウィンドウハンドルに対してSetWindowFont()を行うとリストビュー全体のフォントが変更されます。 リストビュー関数にはListView_GetHeader( リストビューハンドル );という関数が用意されていてリストビューのカラム部分のハンドルを取得できます。 このハンドルに対してSetWindowFont()を行うとカラム部分だけのフォントが変更されます。 という事はアイテム部分だけのハンドルを取得し、SetWindowFont()でフォントを変更する事はできるのでしょうか? ご教授よろしくお願いいたします。

  • Accessでパラメータークエリのパラメータを、フォームのリストボックスから選択することってできませんか?

    Accessで パラメータークエリのパラメータを、フォームのリストボックスから選択することってできませんか? あと、抽出されたテーブルの最後のリストの値を、テキストボックスに表示させるような、イベントプロシージャってどうのように書きますか? 以上、よろしくお願いします。

  • 【vb6】リストビューへのアイコンの追加

    お世話になります。 vb6のリストビューについて質問があります。 リストビューに作った複数の列(現状はヘッダーで区切っただけの擬似的なもの)に対して、 例えば”1行目の4列目にアイコンを設定する"といった事をやりたいのが方法がわかりません。 グリッドを使えば楽なのは分かっているのですが、今回は見た目の都合上リストビューで作りたいと考えています。 またAPIを使えば画面に絵を貼り付けられるのも承知していますが、そのようなことをしなくても 標準の機能でアイコンを追加することは出来ると昔聞いたもので、APIではない方法を探しています。 どなたかご存知の方がいらっしゃればどうか教えてください。 よろしくお願いします。

  • リストビュー ⇔ 別ファイル構造体 の実現方法

    VC++6.0、Win32 APIを用いて作成しているダイアログボックスを表示するアプリについてです。 パターン(パターン1~3までの3種類)が格納される列と、文字列(最大256バイト)が 格納される列の2列からなるリストビューがあります。 そのリストビューに新しい情報(行)を追加するたびに、その該当行の情報を 別ファイル(設定ファイル)の構造体に格納し、リストビューの変更・削除があれば、 その都度構造体を更新し(?)反映させたいです。 メモリも無駄なく、効率的に使いたいです。 また次回以降そのアプリを起動させる際には、設定ファイルの内容を読み込んでリストビュー の表示に反映させたいです。 正直、構造体は苦手なため解らないことだらけなのですが、パターンを格納するint型の変数と 文字列を格納する固定長256byteのchar型配列の変数が必要なのではと思っています。 後は、レコード数を格納するヘッダーも必要なのでしょうか・・・ メモリの取得、開放、移動方法はいまいち分かりません。 現在は、ラジオボタン(パターン用)とエディットボックス(文字列用)を用いて、 リストビューに登録するところまでは出来ています。 変更や削除の機能も実装出来ています。 上記の処理を実現させるための詳細な流れを教えてください。 サンプルコードも載せて頂けると幸いです。 分かりにくい文章で申し訳ありませんが、よろしくお願い致します。

  • VBA csvファイルのデータをリストビューへ

    こんばんは、いつもお世話になっております。 素人ですが、宜しくお願いいたします。 タイトル通りなのですが、csvファイルにあるデータをリストビューで表示したいと思っています。 リストボックスなどへの方法は検索するとヒットするのですが、 リストビューの方法はあまりないのか、見つかりませんでした。 test.csv 1,Name,Tel,Address,Address2 2,Name,Tel,Address,Address2 上記のようなデータが10行ほどあります。 何か参考になるサイトなどでも結構ですので、 ご教授願います。宜しくお願いいたします。

  • 空のリストビューで1行おきに背景色を変える

    リストビューで1行おきに背景色を変えたくて、 http://homepage3.nifty.com/mitui707/VisualC/VClistview_color.html/ を参考にさせて貰らい、データを次々に追加していくと、サンプル通りに5行目の背景色と文字色は変わりました。 が、起動時の何もデータが無い状態の空のリストビューで1行おきに背景色を変えたいのです。 色々と試してますが、まだ初心者のため間違っているのかうまくいきません。 どなたか助言をお願いします。 VC++6.0を使用しています。

  • ダイアログボックスにリストビューを付けたが、リストが表示されない

    ダイアログボックスにリストビューを付けて、ダイアログボックスにデータの一覧を表示させたいのですが、うまく表示されません。  http://gurigumi.s349.xrea.com/programming/visualcpp/sdk_dialog_listview1.html を参考にして、プログラミングしました。 プログラムの大まかな処理としては、  1.InitCommonControls()をコール  2.GetDlgItem()で、ダイアログボックスに貼り付けられているウィンドウハンドルを取得  3.ListView_InsertColumn()をコールして、項目を追加  4.ListView_InsertItem()をコールして、1つ目の値を設定  5.ListView_SetItem()をコールして、2つ目以降の値を設定 だと思いますが、この手順で行っても、うまく表示されませんでした。 何か抜けている手順はあるのでしょうか? また、上記以外に、何かポイントにしなければならないことはあるのでしょうか? 申し訳ありませんが、ご返答くださいますよう、よろしくお願いいたします。

  • C# リストビューの特定のセルの特定文字色を変更

    C#のリストビューの特定のセルの中の特定の文字の色を変えたいと思っています。 例えばリストビューの4行目の2列目の中に「INTEGER」という文字列が入れこまれていたら、「EGER」の色だけ赤く変えるということをやりたいのです。 リストビュー全体の文字色、あるいはリストビューの中の特定のセルの文字色を変えるやり方は色々ありましたが、さらにその中の特定の文字だけの色を変えるやり方はどこを探しても見つからなかったので質問させていただきました。 分かる方がいらっしゃいましたら、ご享受のほど、よろしくお願いします。

  • リストビューのスクロール

    お世話様です。 C#.NET(1.1)でプログラミングしています。 リストビューですが以下の設定を行っています。 CheckedBox=true View=List MultiSelect=true Scrollable=true ※カラム関係は何も設定してません。 この設定で、アイテムをどんどん追加していき、ListViewの最大高さまで アイテムが埋まると、水平スクロールが表示され2列目が表示されるのですが、これを垂直スクロールで下に追加という形をとりたいのですが、 どうしたらいいのかわからないです。 (なぜCheckListBoxにしないのかというのは、複数選択ができないからです。) ご存知の方、ご教授願います。(××)

  • リストビューの項目の内容を変更する方法は?

    お世話になります。 VS2005を使用しています。 VB.NETのリストビューで一覧を作ったのですが、その中の項目の内容をプログラム内から変更することは出来ないのでしょうか? 色々検索してみたのですが見つかりませんでした。 現在、リストビューには4つの項目があり、100行くらい有ります。 (1つ目の項目にはチェックボックス付き) その中の、項目の内容を変更したいのです。 やはり、以下のようにしなければいけないのでしょうか。 1)一旦対象行の内容を保存 2)対象行を削除 3)保存先で内容変更 4)リストビューに再追加 よろしくご享受下さい。

専門家に質問してみよう