IsKindOf(RUNTIME_CLASS(CHeader ... [英] IsKindOf ( RUNTIME_CLASS ( CHeader...

查看:72
本文介绍了IsKindOf(RUNTIME_CLASS(CHeader ...的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

void CListView::OnInitialUpdate()
{
	CListView::OnInitialUpdate();


	// TODO: You may populate your ListView with items by directly accessing
	//  its list control through a call to GetListCtrl().

	
	// Add the parent item
	GetListCtrl().InsertColumn(0, _T("Column Text"), LVCFMT_LEFT, 200);
	
	GetListCtrl().SetImageList(&m_ImageSmall, LVSIL_SMALL);
	GetListCtrl().SetImageList(&m_ImageLarge, LVSIL_NORMAL);

	// Add children
	for( int i = 1; i < 5; i++ ) {
		GetListCtrl().InsertItem (0, _T("Child of Parent Item"));
	}

	CHeaderCtrl hc;
	if (hc.IsKindOf(RUNTIME_CLASS(CHeaderCtrl)))
	{
		int i = 0;//ok
	}

	if (GetListCtrl().GetHeaderCtrl()->IsKindOf(RUNTIME_CLASS(CHeaderCtrl)))
	{
	        //fail to step in, why?
		HWND hWndHeader = GetListCtrl().GetDlgItem(0)->GetSafeHwnd();
		m_flatHeader.SubclassWindow (hWndHeader);
	
	}
}





为什么它无法进入第二个if?



Why is it unable to step into the second "if"?

推荐答案

请检查您的列表视图是否使用LVS_REPORT样式创建。如果没有,请添加此样式。
Please check whether your list view is created using LVS_REPORT style. If not, add this style.


IsKindOf仅在满足某些条件时才有效。



http://msdn.microsoft.com/en-us/library/b7tsah76.aspx [ ^ ]



你正在做的测试似乎是多余的:



IsKindOf only works if certain conditions are met.

http://msdn.microsoft.com/en-us/library/b7tsah76.aspx[^]

The test you are doing seems redundant:

GetListCtrl().GetHeaderCtrl()->IsKindOf(RUNTIME_CLASS(CHeaderCtrl))





GetListCtrl()。GetHeaderCtrl()返回CHeaderCtrl或NULL。就是这样。



http:// msdn .microsoft.com / zh-CN / library / c4s15zsx.aspx [ ^ ]


这篇关于IsKindOf(RUNTIME_CLASS(CHeader ...的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆