リストコントロールのチェックボックスのクリックを無効にする方法で悩んでいます。
ダイアログボックスのリストコントロールへ次のようにチェックボックスをつけています。
DWORD dwStyle = m_lList01.GetExtendedStyle();
dwStyle |= LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES;
m_lList01.SetExtendedStyle(dwStyle);
ダイアログ描画の際には該当の行へチェックを入れて、クリックを無効にして表示を行い
たいのですが、良い方法が見つかりません。無効時にはチェックをグレー化にするのが望
ましいのですが、クリックの無効を先決に考えています。
皆様のアドバイス宜しくお願いします
開発環境:WinXP(SP2) VC++6.0 MFC
こっちにもリンクしておきますね
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200808/08080021.txt
いろいろ試して見てサブクラス化で方法で対処しました。
CListCtrlを規定クラスにCListCtrlSubを作成し、メンバ変数のタイ
プをCListCtrlSubとしました。
CListCtrlSub内で下記の様に各々のマウスイベントを捕らえてクリッ
クを阻止しました。OnLButtonDown内の様に場合によっては使い分けが可
能となります。
void CListCtrlSub::OnLButtonDown(UINT nFlags, CPoint point)
{
if(m_bFlag){
return;
}
CListCtrl::OnLButtonDown(nFlags, point);
}
void CListCtrlSub::OnLButtonDblClk(UINT nFlags, CPoint point)
{
return;
CListCtrl::OnLButtonDblClk(nFlags, point);
}
void CListCtrlSub::OnRButtonDown(UINT nFlags, CPoint point)
{
return;
CListCtrl::OnRButtonDown(nFlags, point);
}
void CListCtrlSub::OnRButtonDblClk(UINT nFlags, CPoint point)
{
return;
CListCtrl::OnRButtonDblClk(nFlags, point);
}
皆様のおかげで解決をする事が出来ました。
ありがとうございました。
ツイート | ![]() |