CListCtrlでのOnLButtonDownについて – プログラミング – Home

通知
すべてクリア

[解決済] CListCtrlでのOnLButtonDownについて


ueno
 ueno
(@ueno)
ゲスト
結合: 23年前
投稿: 2
Topic starter  

いつもお世話になっております。

CListCtrlのOnLButtonDownについてご質問させてください。
CListCtrlでItemを選択(クリックで)する際、常にCtrlキーを押下した状態と
同様にしたいのですがどうすればよいでしょうか?

下記のような実装を試みたのですがどうもうまくいきません。

void CMyListCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
  nFlags |= MK_CONTOROL;
  CListCtrl::OnLButtonDown(nFlags, point);
}

どうかご教授をお願いいたします。


引用未解決
トピックタグ
HEARTS
 HEARTS
(@HEARTS)
ゲスト
結合: 24年前
投稿: 21
 

こんなカンジでどうでしょう?
void CListCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォル
トの処理を呼び出してください
int nItem = HitTest(point);
     UINT nState

if (nItem >= 0) {
nState = GetItemState(nItem, LVIS_SELECTED);
if (nState == LVIS_SELECTED) {
SetItemState(nItem, 0, LVIS_SELECTED);
} else {
SetItemState(nItem, LVIS_SELECTED, LVIS_SELECTED);
}
}

// CListCtrl::OnLButtonDown(nFlags, point);
}


返信引用
ueno
 ueno
(@ueno)
ゲスト
結合: 23年前
投稿: 2
Topic starter  

ご回答ありがとうございます。
上記の方法を確認いたしました。

しかし、どうしても条件として、
CListCtrl::OnLButtonDown(nFlags, point);
を呼んだ上でCtrlキー押下状態を実現したく
他の掲示板にも質問した結果、解決することができました。
説明不足で申し訳ありませんでした。

BOOL CMyListCtrl::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_LBUTTONDOWN) {
pMsg->wParam |= MK_CONTROL;
}
return CListCtrl::PreTranslateMessage(pMsg);
}


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました