为何ListView_SetImageList总返回 NULL

qiujinjin   2008-5-12 14:02 楼主
代码如下:

  1. CListViewEx::CListViewEx(void)
  2. {
  3.         m_hWnd = NULL;
  4.         m_iImageNumber = 0;

  5.         int size = ::GetSystemMetrics(SM_CXICON);
  6.         m_himlLarge = ImageList_Create(size, size, ILC_COLOR, 0, 50);
  7.         size = ::GetSystemMetrics(SM_CXSMICON);
  8.         m_himlSmall = ImageList_Create(size, size, ILC_COLOR, 0, 50);

  9.         INITCOMMONCONTROLSEX initCCEx;

  10.         initCCEx.dwSize = sizeof(INITCOMMONCONTROLSEX);
  11.         initCCEx.dwICC = ICC_LISTVIEW_CLASSES;

  12.         InitCommonControlsEx(&initCCEx);
  13. }

  14. BOOL        CListViewEx::CreateCtrl(HINSTANCE hInstance, HWND hWnd, int x, int y, UINT cx, UINT cy, UINT ctrlId)
  15. {
  16.         m_hParent = hWnd;
  17.         m_hInst          = hInstance;

  18.         m_hWnd = CreateWindowEx(0, WC_LISTVIEW, TEXT (""),
  19.                 LVS_ICON |/* LVS_SINGLESEL |*/ LVS_OWNERDATA
  20.                 | WS_VISIBLE | WS_CHILD,
  21.                 x, y, cx, cy, hWnd, (HMENU)ctrlId, m_hInst, NULL);
  22.         if(m_hWnd == NULL)
  23.         {
  24.                 return FALSE;
  25.         }

  26.         ListView_SetImageList(m_hWnd, m_himlLarge, LVSIL_NORMAL);
  27.         if(NULL == ListView_SetImageList(m_hWnd, m_himlSmall, LVSIL_SMALL))
  28.         {
  29.                 DestroyWindow(m_hWnd);
  30.                 return FALSE;
  31.         }

  32.         return TRUE;
  33. }

回复评论 (2)

你就设一个imagelist能成功吗?
我没有同时设过两个imagelist。

ListView_SetImageList(m_hWnd, m_himlLarge, LVSIL_NORMAL);
点赞  2008-5-13 12:38
只设置一个,肯定是能成功的。
点赞  2008-5-13 12:47
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复