- ベストアンサー
CDateTimeCtrlのチェックボックスについて
- CDateTimeCtrlのチェックボックスについて質問させてください。
- CDateTimeCtrlのプロパティに「Show None」チェックボックスをコントロールの隣に表示して、日付を選択しなくても良いようにします。
- このチェックボックスをソース上で操作するメンバが見当たりません。ソースからチェックボックスのON,OFFを操作する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
チェックを外す場合は 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)); です。
その他の回答 (2)
- FAY
- ベストアンサー率49% (95/193)
あー、最初の回答みたいにしなくても CDateTimeCtrl * pPicker = (CDateTimeCtrl *)GetDlgItem(IDC_DATETIMEPICKER); pPicker->SetTime(); でもチェックが外れるみたいですね。
お礼
別のやり方まで探していただき、本当にありがとうございました。
- FAY
- ベストアンサー率49% (95/193)
> 質問に書き忘れたのですが、 > 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("チェックがついています。"); } でどうでしょうか。
お礼
ご回答ありがとうございました。 無事実装することができました。
お礼
FAYさん、ご回答ありがとうございました。 CDateTimeCtrlのチェックボックスを操作することができました。 質問に書き忘れたのですが、 CDateTimeCtrlのチェックボックスのON,OFF状態はどのように取得するのでしょうか? if(CDateTimeCtrlのチェックボックスのON) a=1 if(CDateTimeCtrlのチェックボックスのOFF) a=2 すごく適当な例ですが、このような処理をしたいのです。 回答を頂いたのにまた質問して申し訳ないのですが、 よろしくお願い致します。