C++ WinApi:将样式添加到组合框

C++ WinApi:将样式添加到组合框,c++,windows,winapi,C++,Windows,Winapi,我试图将CBS_OWNERDRAWFIXED样式添加到现有的组合框中,我的代码不起作用,我不知道为什么。 我怀疑oldStyle | addedStyle这个表达可能无效,但我不明白为什么 HWND hwnd = CreateWindow( L"ComboBox", L"", WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST , 200, 200, 200, 200, parentHandle

我试图将CBS_OWNERDRAWFIXED样式添加到现有的组合框中,我的代码不起作用,我不知道为什么。 我怀疑oldStyle | addedStyle这个表达可能无效,但我不明白为什么

    HWND hwnd = CreateWindow(
    L"ComboBox",
    L"",
    WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST ,
    200,
    200,
    200,
    200,
    parentHandle,
    (HMENU)1,
    GetModuleHandle(NULL),
    NULL);

auto comboBoxStyle = GetWindowLongPtr(hwnd, GWL_STYLE);
comboBoxStyle = comboBoxStyle | CBS_OWNERDRAWFIXED;
SetWindowLongPtr(hwnd, GWL_STYLE, comboBoxStyle);

输出只是常规组合框,没有任何更改。

此特定样式只能在创建时指定。当它说:

CBS_OWNERDRAWFIXED

指定列表框的所有者负责绘制其内容,并且列表框中的项目高度相同。当创建组合框时,所有者窗口接收WM_MEASUREITEM消息,当组合框的视觉外观发生变化时,所有者窗口接收WM_DRAWITEM消息