ページ 1 / 1
リストビューのカラムを非表示にしたいのですが
Posted: 2011年2月06日(日) 00:27
by taketoshi
C/C++ VS2008です。
現在リストビューを用いたプログラムを書いているのですが
その中の1項目のカラムを非表示にしたいです。現在はcxを0にしてるのですが、、なんとも格好悪くて。
ご存知の方、よろしくお願いします。
Re: リストビューのカラムを非表示にしたいのですが
Posted: 2011年2月06日(日) 11:52
by Ciel
そのカラムだけ削除して、メモリではデータを保持しておけばいいんじゃないですか?
Re: リストビューのカラムを非表示にしたいのですが
Posted: 2011年2月06日(日) 12:55
by taketoshi
お返事ありがとうございます
非表示にしたいカラムをキーとして、行ごとにデータを管理していきたいと思っています。
具体的には非表示にしたいキーを基に、行データの削除を行いたいのです。
非表示にしたいカラムだけをメモリで管理するとなると、それに付随する他のデータとの整合性の取り方が思いつかないので
出来るのであれば、カラムを非表示にしたいと考えています。
画像を添付致します。
管理番号のカラムを非表示、キー列としたいです
リストビューには表示されていませんが、各行に削除フラグを設けて
以下のコードでDB側を操作してDBの削除フラグを更新しています。
ちょっと判りづらいかと思いますが、必要部分だけ抜粋します。
コード:
char *szDeleteData ="update %s set 削除フラグ = 1 where 管理番号 = '%s'";//削除フラグを更新するSQL文
case IDC_DELETE://削除ボタン
{
nListReturn = ListView_GetNextItem(hList,-1, LVNI_SELECTED);//選択されている行の取得
ListView_GetItemText(hList,nListReturn,0,szBuff,sizeof(szBuff));//管理番号内の数字を取得
switch(nPosition)
{
case 1:
wsprintf(szSql,szDeleteData,szTableName,szBuff);//SQL文を成型
sql.GetStmt();
sql.SQLAction(szSql,hList);//削除フラグの更新を実行、削除した行を非表示にする
sql.StmtFlush();
break;
case 2:
wsprintf(szSql,szDeleteData,szTableName,szBuff);
sql.GetStmt();
sql.SQLAction(szSql,hList);
sql.StmtFlush();
break;
case 3:
wsprintf(szSql,szDeleteData,szTableName,szBuff);
sql.GetStmt();
sql.SQLAction(szSql,hList);
sql.StmtFlush();
break;
default:
break;
Re: リストビューのカラムを非表示にしたいのですが
Posted: 2011年2月06日(日) 14:50
by ISLe
LV_ITEM構造体のlParamメンバに管理番号を記録するのはどうでしょう。
Re: リストビューのカラムを非表示にしたいのですが
Posted: 2011年2月06日(日) 16:23
by taketoshi
ISLeさんアドバイスありがとうございます。
調べてみましたが、アイテムに対して番号振れるので、この方法でデータの整合性を取る事ができそうです。
今のプログラム構成だと大幅な書き直しが必要なので、もう少しご意見を聞かせていただきたいと思います。