プロが教えるわが家の防犯対策術!

現在、タッチパネルモニタを使用したシステムを検討中で、日付を指定するのに月間予定表コントロールを考えています。(やはり指で操作するなら、カレンダーの方が操作しやすいと思いますので)
その為、そのカレンダーコントロールを画面一杯に表示させたいのですが、可能でしょうか?出来るならば、助言をお願いします。

環境
 Visual C++6.0
 Windows XP Pro SP3

以上、よろしくお願いします。

A 回答 (4件)

★補足要求します。


>CreateFontでフォントを大きくしてみましたが、日付を変えると
>選択前の日と選択した日のフォントが元に戻ってしまい、どうしたら
 ↑
 どのようにフォントを設定していますか?
 こちらでは上手く大きいフォントでカレンダー・コントロールが表示されています。
 日付を選択してもフォントの大きさは戻りません。
 (非 MFC で確認済み)
・フォントのハンドルは保存しておいて下さい。
 プログラムの終了時に DeleteObject などで削除します。
 それまではどこかに保存しておかないといけません。
 (ソースコードでも貼り付けてみて下さい。)
    • good
    • 0
この回答へのお礼

お世話になります。
以下のようにフォントを設定しています。

CFont CalFont;
CalFont.CreateFont(80, 0, 0, 0, FW_BOLD, FALSE, FALSE, 0, SHIFTJIS_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, _T("MS ゴシック"));
m_Calendar.SetFont(&CalFont, TRUE);

※以前、スタティックテキストのフォントを大きくした時と同じにしました。

以上、よろしくお願いします。

お礼日時:2008/11/14 17:30

CalFontがイベントのローカル変数なのではないですか


ローカル変数だとイベントハンドラから抜けた時点で破棄されてしまいます

クラス変数またはグローバル変数にして見ましょう
    • good
    • 0
この回答へのお礼

CalFontをクラス変数(m_CalFont)に変更し、正常に動作しました。
(縦横の大きさのバランスはイマイチですが...。)

ありがとうございました。

お礼日時:2008/11/14 18:39

★アドバイス


>その為、そのカレンダーコントロールを画面一杯に表示させたいのですが、
>可能でしょうか?出来るならば、助言をお願いします。
 ↑
 可能ですが文字のフォントも大きいサイズに変更する必要があると思います。
 これをしないとカレンダー・コントロールだけが画面一杯に広がるだけで
 日付などは中央に小さいだけになります。
・これでは大きくする意味がありませんので CreateFont などで
 フォントを大きくすれば可能でしょう。
・あとはタッチパネルモニタからの情報を使ってカレンダー・コントロールの
 ヒットテストの通知メッセージを処理すれば良いでしょう。
    • good
    • 0
この回答へのお礼

アドバイス、ありがとうございます。

今、リソースエディタでカレンダーコントロールを大きくしておき、
CreateFontでフォントを大きくしてみましたが、日付を変えると
選択前の日と選択した日のフォントが元に戻ってしまい、どうしたら
いいか悩んでいるところです。

お礼日時:2008/11/14 13:43

適切なメッセージを処理すれば可能ですよ



WM_SIZEなどを捕まえて コントロールの大きさをSetWidnowPosやMoveWindowなどで変更してやれば良いでしょう
    • good
    • 0
この回答へのお礼

redfox63さん、いつもありがとうございます。
早速、やってみます。

お礼日時:2008/11/14 11:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています