---------------------------DLL A----------------------------------
#ifdef SELIBCTRL_IMP
#define SELIBCTRL_API __declspec(dllexport)
#define SELIBCTRL_EXT_CLASS AFX_CLASS_EXPORT
#else
#define SELIBCTRL_API __declspec(dllimport)
#define SELIBCTRL_EXT_CLASS AFX_CLASS_IMPORT
#endif
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^^