首页 > 代码库 > duilib程序点击标题栏的X无法正常关闭的问题解决方法

duilib程序点击标题栏的X无法正常关闭的问题解决方法

点击标题栏的X无法正常的退出程序,界面销毁但是后台仍在运行,看了下源码,点击X以后会进入此处理 

void WindowImplBase::OnClick(TNotifyUI& msg)
	{
		CDuiString sCtrlName = msg.pSender->GetName();
		if( sCtrlName == _T("closebtn") )
		{
			
			Close(); 
			return; 
		}


void CWindowWnd::Close(UINT nRet)
{
    ASSERT(::IsWindow(m_hWnd));
    if( !::IsWindow(m_hWnd) ) return;
    PostMessage(WM_CLOSE, (WPARAM)nRet, 0L);
}

此处理抛出WM_CLOSE 消息,并未抛出WM_QUIT ,重载OnDestroy,抛出即可正常退出

LRESULT CDYControlSystemFrameWnd::OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{

	::PostQuitMessage(0L);

	bHandled = FALSE;
	__super::OnDestroy(uMsg, wParam, lParam, bHandled);
	return 0;
}



duilib程序点击标题栏的X无法正常关闭的问题解决方法