Контекстное меню над HEADERом ListCtrl при горизонтальной прокрутке
Контекстное меню над HEADERом ListCtrla у меня в общем "получилось" все входит и выходит, кроме одного- не могу отловить заголовки столбцов не вошедшие в область вывода списка (надеюсь правильно назвал),т.е. если список не помещается по горизонтали и появляется горизонтальная полоса прокрутки. При прокрутке на тех заголовках, которые "выползли" появляются снова теже менюшки, т.е. как я понял нумерация itemov заголовков не прибавляется. Если разворачиваешь окно- все нормально.
Прикрепляю маленький проект. Может так кто-нибудь ответит.
Вопрос решен! Помог ElcnU на форуме Исходники.RU. Огромный ему респект!
Код:
void CMyListCtrl::OnContextMenu(CWnd* pWnd, CPoint point)
{
HDITEM HDIt;
HDIt.mask= HDI_TEXT;
int NStolba=0;
CRect R(0,0,0,0);
int nScrollPos=GetScrollPos(SB_HORZ);
int nCount=GetHeaderCtrl()->GetItemCount();
for(NStolba; NStolba<nCount; NStolba++)
{
GetHeaderCtrl()->GetItemRect(NStolba,&R);
R.left-=nScrollPos;
R.right-=nScrollPos;
ClientToScreen(&R);
if(R.PtInRect(point))break;
}
...
{
HDITEM HDIt;
HDIt.mask= HDI_TEXT;
int NStolba=0;
CRect R(0,0,0,0);
int nScrollPos=GetScrollPos(SB_HORZ);
int nCount=GetHeaderCtrl()->GetItemCount();
for(NStolba; NStolba<nCount; NStolba++)
{
GetHeaderCtrl()->GetItemRect(NStolba,&R);
R.left-=nScrollPos;
R.right-=nScrollPos;
ClientToScreen(&R);
if(R.PtInRect(point))break;
}
...