Добрый день.
Не могу понять как реализовать.
В справке MSDN написано:
Код HTML:
#define BOLDDAY(ds, iDay) \
if (iDay > 0 && iDay < 32)(ds) |= (0x00000001 << (iDay - 1))
case WM_NOTIFY:
if (((LPNMHDR)lParam)->code == MCN_GETDAYSTATE)
{
MONTHDAYSTATE rgMonths[12] = { 0 };
int cMonths = ((NMDAYSTATE*)lParam)->cDayState;
for ( int i = 0; i < cMonths; i++)
{
BOLDDAY(rgMonths[i], 1);
BOLDDAY(rgMonths[i], 15);
}
((NMDAYSTATE*)lParam)->prgDayState = rgMonths;
return TRUE;
}
break ;
Переделал под Delphi.
Установил стиль MCS_DAYSTATE.
Во всех видимых(?) месяцах, должен быть выделено 15 число .Но не работает.
Код:
var
DayM : array [0..11] of MONTHDAYSTATE;
.......
procedure BoldDays(MonthBoldInfo: LongWord; Days: LongWord);
begin
if (Days > 0) and (Days < 32) then
MonthBoldInfo := ($00000001 shl (Days - 1));
end;
case PNMHdr(LParam).code of
MCN_GETDAYSTATE:
begin
cMonths := pnmdaystate(LParam).cDayState;
for I := 0 to cMonths do
begin
BoldDays(DayM[i], 15);
end;
pnmdaystate(LParam).prgDayState := @daym;
end;
Как правильно надо сделать?