文章目录
1.CComboUI控件
- 1.CComboUI控件
- 2.作者答疑
在win32中,窗口分为模态窗口和非模态窗口,模态窗口会阻塞线程的运行,直到窗口处理完毕,代码入下:
class CDuiFrameWnd : public WindowImplBase
{
public:
virtual LPCTSTR GetWindowClassName() const { return _T("DUIMainFrame"); }
virtual CDuiString GetSkinFile() { return _T("Res/LabelText.xml"); }
virtual CDuiString GetSkinFolder() { return _T(""); }
virtual void Notify(TNotifyUI& msg)
{
if (msg.sType == _T("click"))
{
if (msg.pSender->GetName() == _T("closebtn"))
{
::PostQuitMessage(0);
}
else if (msg.pSender->GetName() == _T("okbtn"))
{
::MessageBox(NULL, _T("提示"), _T("确定按钮"), NULL);
}
}
}
virtual void InitWindow()
{
shu_pai_radio = static_cast (m_pm.FindControl(_T("shu_pai_radio")));
ASSERT(shu_pai_radio != NULL);
}
public:
CButtonUI* shu_pai_radio;
};
void Test()
{
CDuiFrameWnd * duiFrame=new CDuiFrameWnd;
duiFrame->Create(NULL, _T("DUIWnd"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE);
duiFrame->CenterWindow();
duiFrame->ShowModal();//模态窗口显示
}
非模态窗口就是普通窗口,不阻塞线程,代码如下:
void Test(HWND p)
{
CDuiFrameWnd * duiFrame=new CDuiFrameWnd;
duiFrame->Create(p, _T("DUIWnd"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE); //UI_WNDSTYLE_CHILD
duiFrame->CenterWindow();
duiFrame->ShowWindow();//非模态窗口显示
}
非模态窗口中,还有一类就是子窗口,代码如下:
void Test(HWND p)
{
CDuiFrameWnd * duiFrame=new CDuiFrameWnd;
duiFrame->Create(p, _T("DUIWnd"), UI_WNDSTYLE_CHILD, WS_EX_WINDOWEDGE); //UI_WNDSTYLE_FRAME
duiFrame->ShowWindow();
}
2.作者答疑
如有疑问,请留言。