最近开发一个测试工具,各种测试内容在左侧的CTreeCtrl显示由MFC的MDI提供
需求如下图:
网上有不少网友提供了通过改写CViewTree类的响应NM_CUSTOMDRAW消息,自绘CTreeCtrl控件。但是在操作中还是遇到一些问题现总结如下:
void CViewTree::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)
{
// LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
NMTVCUSTOMDRAW* pNMCD = (NMTVCUSTOMDRAW*)(pNMHDR);
if (CDDS_PREPAINT == pNMCD->nmcd.dwDrawStage)
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if ((CDDS_ITEMPREPAINT) == pNMCD->nmcd.dwDrawStage)
{
COLORREF clrOldColor;
COLORREF clrLoseColor, clrSuccessColor;
clrOldColor = pNMCD->cl