程序中使用了Date Time Picker控件,VC将它封装为
CDTPicker类
该类的成员函数对日期和时间使用VARIANT类型
请问我如何从VARIANT中提取并修改日期的具体数值
最好举例说明
谢谢!

解决方案 »

  1.   

    怎么这么复杂啊?
    如果是在对话框中,可以映射为CTime成员,修改后UpdateData(FALSE)即可.
    如果一定要这么做的话,
    这些成员函数使用的类型一般都是数值型,也可能是日期时间型.
    如果是数值型:
    switch(vtWidth.vt)
    {
    case VT_NULL:
    dwWidth = 400;
    break;
    case VT_I2:
    dwWidth = vtWidth.iVal;
    break;
    case VT_I4:
    dwWidth = vtWidth.lVal;
    break;
    case VT_INT:
    dwWidth = vtWidth.intVal;
    break;
    case VT_UI2:
    dwWidth = vtWidth.uiVal;
    break;
    case VT_UI4:
    dwWidth = vtWidth.ulVal;
    break;
    }
    以上是得到值,如果是设置,类似的先指定类型,然后赋相应成员.具体参考MSDN.