SourceCodeSky QQ客服 SourceCodeSky 400电话 客服电话 暂无
首页 » 源代码 » DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小 » /DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/BaseDialog.cp

BaseDialog.cpp ( 文件浏览 )

  • keepall 发布于 2016-08-23 13:24
  • 浏览次数:349
  • 下载次数: 1
  • 下载需 20 积分
  • 侵权举报
#include "StdAfx.h"
#include "BaseDialog.h"
// Download by http://www.codefans.net
#include <memory>

void BaseDialog::Notify(TNotifyUI& msg)
{
    if ( msg.sType == _T("click"))
    {
        if( msg.pSender == static_cast<CButtonUI*>(m_pm.FindControl(_T("minbtn"))) )
            SendMessage(WM_SYSCOMMAND, SC_MINIMIZE, 0);

        if( msg.pSender == static_cast<CButtonUI*>(m_pm.FindControl(_T("closebtn"))) )
            PostQuitMessage(0);

        if( msg.pSender == static_cast<CButtonUI*>(m_pm.FindControl(_T("maxbtn"))) )
            ::IsZoomed(*this) ? SendMessage(WM_SYSCOMMAND, SC_RESTORE, 0) : SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE, 0);
    }
}

LRESULT BaseDialog::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    static std::auto_ptr<MessageMap> customMessageMap(InitMessageMap());

    BOOL bHandled = TRUE;
    LRESULT lRes = 0;

    if ( customMessageMap->find(uMsg) != customMessageMap->end() )
    {
        CustomMsgHandler handler = (*customMessageMap)[uMsg];
        lRes = (this->*handler)(wParam, lParam, bHandled);

        if ( bHandled ) return lRes;
    }

    if( m_pm.MessageHandler(uMsg, wParam, lParam, lRes) ) return lRes;

    return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
}

BaseDialog::MessageMap* BaseDialog::InitMessageMap()
{
    MessageMap* map = new MessageMap;

    (*map)[WM_CREATE] = &BaseDialog::OnCreate;
    (*map)[WM_DESTROY] = &BaseDialog::OnDestory;
    (*map)[WM_ERASEBKGND] = &BaseDialog::OnErasebkgnd;
    (*map)[WM_SIZE] = &BaseDialog::OnSize;
    (*map)[WM_NCPAINT] = &BaseDialog::OnNcPaint;
    (*map)[WM_NCACTIVATE] = &BaseDialog::OnNcActive;
    (*map)[WM_NCCALCSIZE] = &BaseDialog::OnNcCalSize;
    (*map)[WM_NCHITTEST] = &BaseDialog::OnNcHitTest;
    (*map)[WM_SYSCOMMAND] = &BaseDialog::OnSysCommand;
    (*map)[WM_GETMINMAXINFO] = &BaseDialog::OnGetMinMaxInfo;

    return map;
}

HRESULT BaseDialog::OnCreate( WPARAM wParam, LPARAM lParam, BOOL& bHandled )
{
    LONG styleValue = ::GetWindowLong(*this, GWL_STYLE);
    styleValue &= ~WS_CAPTION;
    ::SetWindowLong(*this, GWL_STYLE, styleValue | WS_CLIPSIBLINGS | WS_CLIPCHILDREN);

    m_pm.Init(m_hWnd);
    CDialogBuilder builder;
    CControlUI* pRoot = builder.Create(_T("main_dlg.xml"), (UINT)0, NULL, &m_pm);
    m_pm.AttachDialog(pRoot);
    m_pm.AddNotifier(this);

    return 0;
}

HRESULT BaseDialog::OnDestory( WPARAM wParam, LPARAM lParam, BOOL& bHandled )
{
    ::PostQuitMessage(0L);
    return 0;
}

HRESULT BaseDialog::OnErasebkgnd( WPARAM wParam, LPARAM lParam, BOOL& bHandled )
{
    return 1;
}

HRESULT BaseDialog::OnSize( WPARAM wParam, LPARAM lParam, BOOL& bHandled )
{
    SIZE szRoundCorner = m_pm.GetRoundCorner();
    if( !::IsIconic(*this) && (szRoundCorner.cx != 0 || szRoundCorner.cy != 0) ) 
    {
        CRect rcWnd;
        ::GetWindowRect(*this, &rcWnd);
        rcWnd.Offset(-rcWnd.left, -rcWnd.top);
        rcWnd.right++; 
        rcWnd.bottom++;
        HRGN hRgn = ::CreateRoundRectRgn(rcWnd.left, rcWnd.top, rcWnd.right, 
            rcWnd.bottom, szRoundCorner.cx, szRoundCorner.cy);
        ::SetWindowRgn(*this, hRgn, TRUE);
        ::DeleteObject(hRgn)[!==More==!]			
...
展开> <收缩

下载源码到电脑,阅读使用更方便

1 积分

快速下载
还剩0行未阅读,继续阅读
免费下载源码
Sponsored links

源码文件列表

温馨提示: 点击源码文件名可预览文件内容哦 ^_^
...
名称 大小 修改日期
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/ 0 Bytes 2014-02-08 20:33:08
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/ 0 Bytes 2015-01-23 23:03:58
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/ 0 Bytes 2015-01-23 23:03:58
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/ 0 Bytes 2015-01-23 23:03:58
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test.sln 2.24 KB 2014-01-22 00:16:48
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test.suo 65.00 KB 2014-01-22 23:10:34
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/bin/ 0 Bytes 2015-01-23 23:03:58
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/bin/DuiLib.dll 401.50 KB 2014-01-22 23:07:06
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/bin/skin.zip 277.88 KB 2014-01-22 23:09:46
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/DuiLib.vcpr 21.47 KB 2014-01-22 00:13:18
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/DuiLib.vcpr 2.52 KB 2014-01-22 23:10:34
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/DuiLib.vcpr 2.53 KB 2014-01-20 17:32:08
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/StdAfx.cpp 282 Bytes 2011-05-31 21:42:44
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/StdAfx.h 1.51 KB 2011-05-31 21:42:44
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIActiveX.c 36.25 KB 2014-02-08 21:12:50
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIActiveX.h 1.75 KB 2011-05-31 21:42:44
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIBase.cpp 29.69 KB 2014-02-08 21:12:52
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIBase.h 8.34 KB 2011-06-04 10:51:16
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UICombo.cpp 28.33 KB 2011-07-27 09:24:50
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UICombo.h 3.61 KB 2011-07-27 09:24:16
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UICommonCon 81.98 KB 2011-07-27 10:27:16
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UICommonCon 11.98 KB 2011-06-08 16:19:22
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIContainer 64.05 KB 2014-02-08 21:12:42
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIContainer 6.79 KB 2011-05-31 21:42:44
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIControl.c 22.28 KB 2014-02-08 21:12:46
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIControl.h 6.03 KB 2011-07-27 09:35:18
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIDelegate. 2.02 KB 2011-06-23 23:59:50
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIDelegate. 2.11 KB 2011-06-23 23:59:18
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIDlgBuilde 20.93 KB 2014-02-08 21:12:56
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIDlgBuilde 1.01 KB 2011-07-27 17:52:20
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIList.cpp 69.48 KB 2011-07-27 09:35:54
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIList.h 11.66 KB 2011-07-27 09:23:34
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIManager.c 77.56 KB 2014-01-21 22:31:40
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIManager.h 13.37 KB 2014-01-20 17:02:26
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIMarkup.cp 22.42 KB 2011-07-26 20:53:04
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIMarkup.h 2.93 KB 2011-05-31 21:42:44
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIRender.cp 89.04 KB 2014-01-22 21:07:20
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIRender.h 2.26 KB 2011-07-27 09:20:50
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIRichEdit. 58.76 KB 2011-07-17 16:39:18
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIRichEdit. 4.67 KB 2011-05-31 21:42:44
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIlib.cpp 1.00 KB 2011-05-31 21:42:44
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/UIlib.h 640 Bytes 2014-01-10 11:21:44
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/XUnzip.cpp 148.89 KB 2011-05-31 21:42:44
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/DuiLib/stb_image.c 161.13 KB 2011-05-31 21:42:44
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/BaseDialog.cp 5.57 KB 2014-02-08 21:13:08
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/BaseDialog.h 1.35 KB 2014-01-16 15:50:14
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/ReadMe.txt 1.88 KB 2014-01-11 10:08:06
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/Resource.h 712 Bytes 2014-01-11 10:08:06
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/Test.cpp 768 Bytes 2014-02-08 21:13:14
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/Test.h 39 Bytes 2014-01-11 10:08:06
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/Test.ico 23.01 KB 2003-07-24 09:52:32
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/Test.rc 3.24 KB 2014-01-22 00:19:12
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/Test.vcproj 4.92 KB 2014-01-22 00:18:12
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/Test.vcproj.P 1.37 KB 2014-01-22 23:10:34
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/small.ico 23.01 KB 2003-07-24 09:52:32
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/stdafx.cpp 210 Bytes 2014-01-11 10:08:06
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/stdafx.h 565 Bytes 2014-01-16 13:47:16
/DuilibFix C++仿新版360安全卫士主界面(基于稍作修改的duilib)使之支持异性窗口、窗口阴影可以通过拖动窗口边缘改变窗口大小/DuilibFix/Test/targetver.h 1.00 KB 2014-01-11 10:08:06
Sponsored links
正在加载中……

Switch to the English version?

Yes
SourceCodeSky 英文版
No
SourceCodeSky 中文版

完善个人资料,获价值¥30元积分奖励!