zoukankan      html  css  js  c++  java
  • 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控件对象了,问题解决。

    没有坚守就没有事业,没有执着就没有未来!
  • 相关阅读:
    oracle12 安装
    ORACLE重装之后恢复数据库,相当于sqlserver的附加数据库
    git
    P1323 删数游戏(技巧)
    P2486 【SDOI2011】 染色
    P1084 【NOIP 2012】 疫情控制
    前缀、中缀、后缀表达式
    【P1979】 NOIP2013 华容道
    P2601 【ZJOI2009】对称的正方形
    NOIP2015 运输计划
  • 原文地址:https://www.cnblogs.com/depend-wind/p/9498332.html
Copyright © 2011-2022 走看看