• 解説

    リストビューコントロールで行を選択したときは反転されますが、フォーカスが他のコントロールに移ってしまうと選択されている行がわからなくなってしまいます。
    背景色を変更すると視覚的にわかりやすくなります。

    方法はコントロールのカスタムドローで色をつけます。

  • サンプル(背景色を黄色にします)

    void Dialog::OnCustomDrawList(NMHDR *pNMHDR, LRESULT *pResult)
    {
        LPNMLVCUSTOMDRAW pNMCD = reinterpret_cast<LPNMLVCUSTOMDRAW>(pNMHDR);
    
        *pResult = 0;
    
        if (pNMCD->nmcd.dwDrawStage == CDDS_PREPAINT)
            *pResult = CDRF_NOTIFYITEMDRAW;
        else if (pNMCD->nmcd.dwDrawStage == CDDS_ITEMPREPAINT)
        {
            LVFINDINFO FindData = {0x00};
    
            FindData.flags = LVFI_PARAM;
            FindData.lParam = pNMCD->nmcd.lItemlParam;
    
            if (m_ListControl.GetItemState(m_ListControl.FindItem(&FindData),
                                           LVIS_SELECTED) == LVIS_SELECTED)
            {
                pNMCD->clrTextBk = RGB(255, 255, 0);
    
                *pResult = CDRF_NEWFONT;
            }
        }
    }
    
  • その他

    このサンプルでは検索しやすいように、リストにアイテムを追加するときlParamを設定しています。

スポンサードリンク

説明がわからないなどありましたらお問い合わせでお知らせください。

ここに掲載された情報を使用したことによって発生した、いかなる損害に対しても
管理者である雅は一切責任を負いません。

スポンサードリンク