BOOL CMyMFCDialogSimpleDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)//to make toolbar non transparent
{
NMHDR* hdr = (NMHDR*)lParam;
//static HBRUSH hbr = CreateHatchBrush(HS_BDIAGONAL, RGB(64,134,247));
//static HBRUSH hbr = CreateHatchBrush(HS_DIAGCROSS, RGB(64,134,247));
static HBRUSH hbr = CreateHatchBrush(HS_DIAGCROSS, RGB(242, 99, 142));
if (hdr->code == NM_CUSTOMDRAW)
{
if (hdr->hwndFrom == m_toolbar1.GetSafeHwnd())
{
*pResult = CDRF_DODEFAULT;
NMCUSTOMDRAW* cdi = (NMCUSTOMDRAW*)lParam;
if (cdi->dwDrawStage == CDDS_PREPAINT)
{
*pResult = CDRF_NOTIFYITEMDRAW | CDRF_NOTIFYPOSTERASE | CDRF_NOTIFYPOSTERASE | CDRF_NOTIFYPOSTPAINT;
return TRUE;
}
else if (cdi->dwDrawStage == CDDS_PREERASE)
{
*pResult = CDRF_NOTIFYITEMDRAW | CDRF_NOTIFYPOSTERASE | CDRF_NOTIFYPOSTERASE | CDRF_NOTIFYPOSTPAINT;
return TRUE;
}
else if (cdi->dwDrawStage == CDDS_ITEMPREPAINT)
{
*pResult = CDRF_NOTIFYITEMDRAW | CDRF_NOTIFYPOSTERASE | CDRF_NOTIFYPOSTERASE | CDRF_NOTIFYPOSTPAINT;
return TRUE;
}
else if (cdi->dwDrawStage == CDDS_POSTERASE)
{
*pResult = CDRF_NOTIFYITEMDRAW | CDRF_NOTIFYPOSTERASE | CDRF_NOTIFYPOSTERASE | CDRF_NOTIFYPOSTPAINT;
CRect rc = {};
m_toolbar1.GetClientRect(&rc);
//FillRect(cdi->hdc, &rc, (HBRUSH)GetStockObject(GRAY_BRUSH));
FillRect(cdi->hdc, &rc, hbr);
return TRUE;
}
else if (cdi->dwDrawStage == CDDS_ITEMPOSTERASE)
{
*pResult = CDRF_NOTIFYITEMDRAW | CDRF_NOTIFYPOSTERASE | CDRF_NOTIFYPOSTERASE | CDRF_NOTIFYPOSTPAINT;
return TRUE;
}
else if (cdi->dwDrawStage == CDDS_POSTPAINT)
{
*pResult = CDRF_DODEFAULT;
return TRUE;
}
}
}
return 0;// CDialogEx::OnNotify(wParam, lParam, pResult);
}