• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CDateTimeCtrlのチェックボックスについて)

CDateTimeCtrlのチェックボックスについて

このQ&Aのポイント
  • CDateTimeCtrlのチェックボックスについて質問させてください。
  • CDateTimeCtrlのプロパティに「Show None」チェックボックスをコントロールの隣に表示して、日付を選択しなくても良いようにします。
  • このチェックボックスをソース上で操作するメンバが見当たりません。ソースからチェックボックスのON,OFFを操作する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • FAY
  • ベストアンサー率49% (95/193)
回答No.1

チェックを外す場合は CWnd * pWnd = GetDlgItem(IDC_DATETIMEPICKER); SYSTEMTIME systime; ::GetLocalTime(&systime); pWnd->SendMessage(DTM_SETSYSTEMTIME, (LPARAM)GDT_NONE, (LPARAM)(&systime)); 日付を設定する必要がないときはSendMessageの第三引数にNULLを 渡してやればいいです。 チェックをつけるときは pWnd->SendMessage(DTM_SETSYSTEMTIME, (LPARAM)GDT_VALID, (LPARAM)(&systime)); です。

book123
質問者

お礼

FAYさん、ご回答ありがとうございました。 CDateTimeCtrlのチェックボックスを操作することができました。 質問に書き忘れたのですが、 CDateTimeCtrlのチェックボックスのON,OFF状態はどのように取得するのでしょうか? if(CDateTimeCtrlのチェックボックスのON) a=1 if(CDateTimeCtrlのチェックボックスのOFF) a=2 すごく適当な例ですが、このような処理をしたいのです。 回答を頂いたのにまた質問して申し訳ないのですが、 よろしくお願い致します。

その他の回答 (2)

  • FAY
  • ベストアンサー率49% (95/193)
回答No.3

あー、最初の回答みたいにしなくても CDateTimeCtrl * pPicker = (CDateTimeCtrl *)GetDlgItem(IDC_DATETIMEPICKER); pPicker->SetTime(); でもチェックが外れるみたいですね。

book123
質問者

お礼

別のやり方まで探していただき、本当にありがとうございました。

  • FAY
  • ベストアンサー率49% (95/193)
回答No.2

> 質問に書き忘れたのですが、 > CDateTimeCtrlのチェックボックスのON,OFF状態はどのように取得するのでしょうか? SYSTEMTIME systime; CDateTimeCtrl * pPicker = (CDateTimeCtrl *)GetDlgItem(IDC_DATETIMEPICKER); if(pPicker->GetTime(&systime) == GDT_NONE) { AfxMessageBox("チェックは外れています。"); } else //pPicker->GetTime(&systime) == GDT_VALIDのとき { AfxMessageBox("チェックがついています。"); } でどうでしょうか。

book123
質問者

お礼

ご回答ありがとうございました。 無事実装することができました。

関連するQ&A