あなたは正しいことも間違っていることもあります:-)
参照:
http: //www.experts-exchange.com/Programming/System/Windows__Programming/MFC/Q_23927552.html
XPでBoldDaysを設定することはできません。しかし、Vista / Win7ではできるので、あなたは間違っています!
変更されたコードは次のとおりです。
procedure TForm1.DateTimePicker1DropDown(Sender: TObject);
const
DTM_GETMCSTYLE = (DTM_FIRST + 12);
DTM_SETMCSTYLE = (DTM_FIRST + 11);
MCS_NOTRAILINGDATES = $0040;
MCS_SHORTDAYSOFWEEK = $0080;
MCS_NOSELCHANGEONNAV = $0100;
var
monthCalHandle: THandle;
boldDates: array[0..2] of integer;
style, prevstyle: LResult;
begin
style := SendMessage(DateTimePicker1.Handle, DTM_GETMCSTYLE, 0, 0);
style := style or MCS_DAYSTATE; //or MCS_NOSELCHANGEONNAV or MCS_WEEKNUMBERS;
prevstyle := SendMessage(DateTimePicker1.Handle, DTM_SETMCSTYLE, 0, style);
monthCalHandle := SendMessage(dateTimePicker1.Handle, DTM_GETMONTHCAL, 0, 0);
boldDates[0]:=$5a5a5a;
boldDates[1]:=$5a5a5a;
boldDates[2]:=$5a5a5a;
SendMessage(monthCalHandle, MCM_SETDAYSTATE, 3, integer(@boldDates));
end;
注:ビスタマニフェストをファイルに追加してください。そうしないと機能しません。
定数は、更新されたcommctrl.hファイルからのものです
。http ://www.koders.com/cpp/fid6A6537D52B537D0920D7A760D2073F7B65ADE310.aspx?s = WM_CAP_DRIVER_CONNECT
助けてくれてありがとう、あなたは私を解決策に導きます!:-)