要するに、CTabCtrl::AdjustRect () の使い方です。引数の fLarger に FALSE を渡すと、タブページの領域の矩形を取得することができます。別に CListBox でなくてもよかったのですが、例では CListBox をタブに貼り付けます。
SDK の場合は SendMessage で、TCM_ADJUSTRECT をタブコントロールに送出する方法に読み替えます。TabCtrl_AdjustRect というマクロも用意されています。
class CMyTabDialog
: public CDialog
{
private:
CTabCtrl m_Tab; // タブです
CListBox m_ListBox; // タブの上にはっつけるリストボックスです
BOOL CMyTabDialog::OnInitDialog (void)
{
CRect Rect;
m_Tab.GetWindowRect (Rect); // タブのウインドウ矩形
m_Tab.AdjustRect (FALSE, Rect); // タブのページいっぱいいっぱいの領域の矩形を導出
ScreenToClient (Rect); // これをダイアログのクライアント座標に変換して
m_ListBox.MoveWindow (Rect); // リストボックスを移動します
return TRUE;
}
Windows Xp は、信頼できる時刻ソースと定期的に同期を行うと、同時に、自動的に NTP サーバとして動作させることができます。
最後に行った時刻同期が失敗している、または、最後に行った時刻同期より、一定以上経過している場合、クライアントからの時刻同期の要求は失敗します。
とにかく2台のマシンの時刻を同期する必要があり、一方が WinXp の場合、それをNTP サーバとして使うことができます。
Windows 2000 Professional は、SNTP クライアントの機能があります。 ただし、どうやらデフォルトでは起動していないようです。