• DuiLib使用MFC的时间控件CDateTimeCtrl出现第二个控件无法获取焦点的问题


       我在Duilib里用了两个MFC的CDateTimeCtrl控件,第一个控件可以随便编辑,第二个鼠标点击根本就获取不到焦点,所以无法编辑,这是什么原因啊,搞了好长时间,百思不得其解。。。

       控件现实效果和XML表达已经代码实现如下:

     --------------------------解决问题:

    需要定义CStatic作为MFC控件的父类,所以增加两个CStatic对象

    	CStatic			m_parentBegin;
    	CStatic			m_parentEnd;
    	CDateTimeCtrl	m_ctrTmBegin;							//MFC时间控件				
    	CDateTimeCtrl	m_ctrTmEnd;
    

      

    CControlUI* CAnalyzeTimeSpanWnd::CreateControl(LPCTSTR pstrClass)
    {
    	if (lstrcmp(pstrClass, _T("MfcTimeStart")) == 0)
    	{
    		//AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0);
    		CWndUIPos *pWnd = new CWndUIPos;
    		CRect rc(CPoint(0, 0), CSize(85, 22));
    		m_parentBegin.Create(_T(""), WS_CHILD | WS_VISIBLE, rc, CWnd::FromHandle(m_hWnd));
    		assert(m_parentBegin);
    		if (m_parentBegin.GetSafeHwnd())
    		{
    			m_ctrTmBegin.Create(WS_CHILD | WS_VISIBLE | DTS_UPDOWN, rc, &m_parentBegin, 0);
    			m_ctrTmBegin.SetFormat(_T("HH:mm:ss"));
    			pWnd->Attach(m_parentBegin.GetSafeHwnd());
    			pWnd->SetName(_T("MFCTimeStart"));
    			return pWnd;
    		}
    		else
    		{
    			delete pWnd;
    			return NULL;
    		}
    	}
    	else if (lstrcmp(pstrClass, _T("MfcTimeEnd")) == 0)
    	{
    		//AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0);
    		CWndUIPos *pWnd = new CWndUIPos;
    		CRect rc(CPoint(0, 0), CSize(85, 22));
    		m_parentEnd.Create(_T(""), WS_CHILD | WS_VISIBLE, rc, CWnd::FromHandle(m_hWnd));
    		assert(m_parentEnd);
    		if (m_parentEnd.GetSafeHwnd())
    		{
    			m_ctrTmEnd.Create(WS_CHILD | WS_VISIBLE | DTS_UPDOWN, rc, &m_parentEnd, 0);
    			m_ctrTmEnd.SetFormat(_T("HH:mm:ss"));
    			pWnd->Attach(m_parentEnd.GetSafeHwnd());
    			pWnd->SetName(_T("MFCTimeEnd"));
    			return pWnd;
    		}
    		else
    		{
    			delete pWnd;
    			return NULL;
    		}
    	}
    	return NULL;
    }
    

      这样就可以正常操作这两个MFC控件对象了,问题解决。

    没有坚守就没有事业,没有执着就没有未来!
  • 相关阅读:
    题目:返回一个整数数组中最大子数组的和。(要求程序必须能处理1000 个元素)
    四则运算三(接受用户输入答案,并判断对错。)
    二维数组
    结对开发(一位数组)
    测试四则运算
    四则运算2
    程序设计思路
    项目计划总结
    小学二年级题目的改进
    二年级题目的改进
  • 原文地址:https://www.cnblogs.com/depend-wind/p/9498332.html
Copyright © 2020-2023  润新知