投稿日 | : 2007/02/06(Tue) 09:47 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re^2: Calendarコントロールへの書き込み |
> >どなたかこのMicrosoft Access Calendar Controlの
> > 任意の日付の枡に文字を書き込んだ方はいらっしゃいませんか?
> 記憶ですが、むか〜し、弁士さんだったかな??(間違いならごめんなさい)
> このコントロールは描画している旨のことを見かけたことがあります。
記憶にないです(^^;)けど、召喚されたらしいので、調べてみました。
とりあえず、MSCAL.OCX ver.8.0 をフォームに貼って、SPY++ で確認してみると、
├[ウィンドウ hhhhhhhh 'Form1' ThunderFormDC] …… VB6 のフォーム
│└[ウィンドウ hhhhhhhh '' CalendarWndClass] …… カレンダー コントロール
│ ├[ウィンドウ hhhhhhhh '2' ComboBox] …… 恐らく、「月」のドロップダウンリスト
│ └[ウィンドウ hhhhhhhh '2007' ComboBox] …… 恐らく、「年」のドロップダウンリスト
のように、子ウィンドウは 2 つしか持たず、日付部に対しては
ウィンドウハンドルが割り当てられていないようです。
また、カレンダー自身のメンバをオブジェクト ブラウザで見ても、
「任意の日付の枡に文字を書き込む機能」は見当たりません。
一応、プログラムから無理に処理するとなれば、
1. GetDC API で、コントロールのウィンドウハンドルからデバイスコンテキストを取得。
2. DrawText または TextOut API で、任意の座標に文字列を描画。
3. ReleaseDC API で、デバイスコンテキストを解放。
のようにすれば描画できることまでは確認しました。
本気で実装するとなれば、さらに、コントロールのウィンドウハンドルの取得、
描画先の座標位置の計算、再描画のタイミング調査なども必要になりますので、
やはり、カレンダーを自作した方が、遙かに楽ということになってくるでしょうね。