Click here to Skip to main content
13,086,120 members (85,441 online)
Rate this:
Please Sign up or sign in to vote.
See more:
---------------------------DLL A----------------------------------
#define SELIBCTRL_API           __declspec(dllexport)
#define SELIBCTRL_API           __declspec(dllimport)
class IListCtrl
SELIBCTRL_API IListCtrl* CreateIListCtrl(HWND hParent);
class CMyListCtrl : public CListCtrl, public IListCtrl
----------------------------DLL B------------------------------
void Test::CreateList()
    IListCtrl* pList = CreateIListCtrl(this->GetSafeHwnd());

I use a dll interface to create a CMyListCtrl, and override DrawItem(),
but it cant receive ownerdraw message,so DrawItem() is always not running, only can receive move event.

PS:I try use AFX_MANAGE_STATE(AfxGetStaticModuleState()), but its no useful

If dont use A dll, move the CMyListCtrl class to the B dll, it will be OK,
Why is this problem? Can anyone give me a suggestion? Thanks.

TO: Richard MacCutchan
I have already set the style when i create this CListCtrl.
But, thanks a lot of you answer^^
Posted 26-Nov-12 21:38pm
Updated 26-Nov-12 23:33pm

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

You need to include the LVS_OWNERDRAWFIXED style in your call to CListCtrl::CreateEx()[^].

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy |
Web04 | 2.8.170813.1 | Last Updated 27 Nov 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100