我在一个Dialog中放了一个Date Time Picker控件,我选定这个控件的Show None属性,我想在初始状态下设置这个属性为TRUE,请问怎么办?

解决方案 »

  1.   

    在 CDialog::OnInitDialog 中设置即可
      

  2.   

    ***.ShowWindow(true);
    不知道对不对……
      

  3.   

    BOOL CMyDialog::OnInitDialog()
    {
    CDialog::OnInitDialog(); SYSTEMTIME SysTime;
    ZeroMemory(&SysTime, sizeof(SYSTEMTIME)); SysTime.wYear  = 2004;
    SysTime.wMonth = 1; 
    SysTime.wDayOfWeek = 1; 
    SysTime.wDay = 1; 
    SysTime.wHour = 1; 
    SysTime.wMinute = 1; 
    SysTime.wSecond = 1; 
    SysTime.wMilliseconds = 1;  m_DatePickerCtrl.SendMessage(DTM_SETSYSTEMTIME, GDT_VALID, 
                                         (LPARAM)&SysTime);
    }GDT_VALID 是选中
    GDT_NONE  是取消选中
      

  4.   

    这么复杂? 我只是想在代码里改变它的属性,刚开始是不选中 ,后来也有不选中的时候。所以代码不一定只放在OnInitDialog()里。我还以为会是m_tDate.* = true;之类的呢。*就是我所说的它的这个属性。能在代码里改变的吧。可以吗? 教我吧 谢谢哦
      

  5.   

    呵呵,你以前是不是用过vb、delphi一类的东西啊?VC即使不用消息,也是用Set*之类的函数。不是用“属性”这个概念。这段代码可以放在m_DatePickerCtrl创建之后的任何地方。其实用vc做界面是比vb一类的工具麻烦。
      

  6.   

    不对啊,我不只放了一个Date Time Picker控件,而是几个。在Member Variables里是这样的:Control IDs:     type           Member
        IDC_CHECKDATE    COleDateTime   m_tCheckDate
        IDC_DATADATE     COleDateTime   m_tDataDate我在程序里某些地方,想使m_tCheckDate和m_tDataDate为空值,在对话框里该控件不可用,即Show None为TRUE。 具体代码如何? 请帮忙,万分感激!!!
      

  7.   

    SYSTEMTIME SysTime;
    ZeroMemory(&SysTime, sizeof(SYSTEMTIME));SysTime.wYear  = 2004;
    SysTime.wMonth = 1; 
    SysTime.wDayOfWeek = 1; 
    SysTime.wDay = 1; 
    SysTime.wHour = 1; 
    SysTime.wMinute = 1; 
    SysTime.wSecond = 1; 
    SysTime.wMilliseconds = 1; CDateTimeCtrl* pDateTimeCtrl = (CDateTimeCtrl*)GetDlgItem(IDC_CHECKDATE);if( pDateTimeCtrl )
        pDateTimeCtrl->SendMessage(DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)&SysTime);再不懂我没辙了。
      

  8.   

    我查了帮助文件,看到下面这段话,应该就是我想做的You can also set this state with DTM_SETSYSTEMTIME wParam = GDT_NONE. Verify the state with DTM_GETSYSTEMTIME. Type: Bool. Default: False.请帮忙给出代码好吗? 555………………
      

  9.   

    多谢osborn(SEANX),我现在差不多明白了,问你一个问题: 
    SysTime.wYear  = 2004;
    SysTime.wMonth = 1; 
    SysTime.wDayOfWeek = 1; 
    SysTime.wDay = 1; 
    SysTime.wHour = 1; 
    SysTime.wMinute = 1; 
    SysTime.wSecond = 1; 
    SysTime.wMilliseconds = 1; 
    以上代码可不可以不要?
      

  10.   

    如果不想改变时间只是选中,可以这样CDateTimeCtrl* pDateTimeCtrl = (CDateTimeCtrl*)GetDlgItem(IDC_DATETIMEPICKER1);if( pDateTimeCtrl )
    {
        SYSTEMTIME SysTime;    pDateTimeCtrl->SendMessage(DTM_GETSYSTEMTIME, NULL, (LPARAM)&SysTime);
        pDateTimeCtrl->SendMessage(DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)&SysTime);
    }取消选中,这样写pDateTimeCtrl->SendMessage(DTM_SETSYSTEMTIME, GDT_NONE, NULL);