一、控件消息的响应
我将添加一个关闭按钮,当点击它时,调用PostQuitMessage进行退出。
首先在界面的右上角添加一个关闭按钮,并取名为“btnClose”。
然后在 CHelloDuilibWnd 中重载 WindowImplBase::Notify ();
代码如下:
void CHelloDuilibWnd::Notify( TNotifyUI& msg )
{if (msg.sType == DUI_MSGTYPE_CLICK) // 先判断消息类型,如果是单击{if (msg.pSender->GetName() == _T ("btnClose")) // 如果控件名为 btnClose{PostQuitMessage(0);}}
}
二、获取XML中的控件
一般的情况下,可以在窗口初始化的时候获取一个控件,当然你在什么时候获取都是可以的,在初始化获取,以后你就可以任意地使用了。
添加重载函数:WindowImplBae::InitWindow,代码如下:
void CHelloDuilibWnd::InitWindow()
{m_btnClose = static_cast <CButtonUI*> (m_PaintManager.FindControl(_T ("btnCloase")));ASSERT(m_btnClose != NULL);
}
请注意,是使用 m_PaintManager 进行获取,该对象负责管理所有工作,包括消息的传递,调用控件的绘制函数等,均由它处理。