ModifyStyleを使ってLBS_MULTIPLESEL属性をCListBoxに設定できない場合の対処法

ModifyStyle関数でLBS_MULTIPLESEL属性を変更できない場合、SetWindowLong関数でウィンドウスタイルを変更してみてください。

サンプルコードを以下に示します。

// 获取当前窗口样式
LONG_PTR style = GetWindowLongPtr(m_ListBox.m_hWnd, GWL_STYLE);

// 添加LBS_MULTIPLESEL属性
style |= LBS_MULTIPLESEL;

// 更新窗口样式
SetWindowLongPtr(m_ListBox.m_hWnd, GWL_STYLE, style);

// 重新绘制窗口
m_ListBox.Invalidate();

SetWindowLong関数でウィンドウスタイルを変更するとウィンドウの再描画が発生する可能性があるので、Invalidate関数などで再描画をトリガーする必要があります。

bannerAds