diff --git a/Demos/ADMonSetup/ADMonSetup.vcxproj b/Demos/ADMonSetup/ADMonSetup.vcxproj
index 5be76634..24930afd 100644
--- a/Demos/ADMonSetup/ADMonSetup.vcxproj
+++ b/Demos/ADMonSetup/ADMonSetup.vcxproj
@@ -9,6 +9,22 @@
Release
Win32
+
+ SDebugA
+ Win32
+
+
+ SDebug
+ Win32
+
+
+ SReleaseA
+ Win32
+
+
+ SRelease
+ Win32
+
{46E0954B-D9BE-48D6-8573-10B4F41E0171}
@@ -21,34 +37,88 @@
Unicode
true
+
+ Application
+ Unicode
+ true
+
+
+ Application
+ false
+ MultiByte
+
Application
Unicode
+
+ Application
+ Unicode
+
+
+ Application
+ MultiByte
+
+
+
+
+
+
+
+
+
+
+
+
+
<_ProjectFileVersion>10.0.40219.1
$(SolutionDir)Bin\
+ $(SolutionDir)Bin\
+ $(SolutionDir)Bin\
$(Configuration)\
+ $(Configuration)\
+ $(Configuration)\
true
+ true
+ true
$(SolutionDir)Bin\
+ $(SolutionDir)Bin\
+ $(SolutionDir)Bin\
$(Configuration)\
+ $(Configuration)\
+ $(Configuration)\
false
+ false
+ false
AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
+
+
+
+
AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
+
+
+
+
@@ -70,6 +140,46 @@
compatibility.manifest
+
+
+ Disabled
+ WIN32;_DEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebugDLL
+ Use
+ Level3
+ EditAndContinue
+
+
+ true
+ Windows
+ MachineX86
+
+
+ compatibility.manifest
+
+
+
+
+ Disabled
+ WIN32;_DEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebugDLL
+ Use
+ Level3
+ EditAndContinue
+
+
+ true
+ Windows
+ MachineX86
+
+
+ compatibility.manifest
+
+
MaxSpeed
@@ -89,11 +199,53 @@
MachineX86
+
+
+ MaxSpeed
+ true
+ WIN32;NDEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ true
+ Use
+ Level3
+ ProgramDatabase
+
+
+ true
+ Windows
+ true
+ true
+ MachineX86
+
+
+
+
+ MaxSpeed
+ true
+ WIN32;NDEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ true
+ Use
+ Level3
+ ProgramDatabase
+
+
+ true
+ Windows
+ true
+ true
+ MachineX86
+
+
Create
+ Create
+ Create
Create
+ Create
+ Create
diff --git a/Demos/ADMonSetup/Debug/ADMonSetup.exe.embed.manifest.res b/Demos/ADMonSetup/Debug/ADMonSetup.exe.embed.manifest.res
new file mode 100644
index 00000000..c4d02afa
Binary files /dev/null and b/Demos/ADMonSetup/Debug/ADMonSetup.exe.embed.manifest.res differ
diff --git a/Demos/ADMonSetup/Debug/ADMonSetup.res b/Demos/ADMonSetup/Debug/ADMonSetup.res
new file mode 100644
index 00000000..038f602c
Binary files /dev/null and b/Demos/ADMonSetup/Debug/ADMonSetup.res differ
diff --git a/Demos/ADMonSetup/Debug/ADMonSetup_manifest.rc b/Demos/ADMonSetup/Debug/ADMonSetup_manifest.rc
new file mode 100644
index 00000000..468bf0bf
Binary files /dev/null and b/Demos/ADMonSetup/Debug/ADMonSetup_manifest.rc differ
diff --git a/Demos/ADMonSetup/SDebug/ADMonSetup.exe.embed.manifest.res b/Demos/ADMonSetup/SDebug/ADMonSetup.exe.embed.manifest.res
new file mode 100644
index 00000000..c4d02afa
Binary files /dev/null and b/Demos/ADMonSetup/SDebug/ADMonSetup.exe.embed.manifest.res differ
diff --git a/Demos/ADMonSetup/SDebug/ADMonSetup.res b/Demos/ADMonSetup/SDebug/ADMonSetup.res
new file mode 100644
index 00000000..038f602c
Binary files /dev/null and b/Demos/ADMonSetup/SDebug/ADMonSetup.res differ
diff --git a/Demos/ADMonSetup/SDebug/ADMonSetup.unsuccessfulbuild b/Demos/ADMonSetup/SDebug/ADMonSetup.unsuccessfulbuild
new file mode 100644
index 00000000..e69de29b
diff --git a/Demos/ADMonSetup/SDebug/ADMonSetup_manifest.rc b/Demos/ADMonSetup/SDebug/ADMonSetup_manifest.rc
new file mode 100644
index 00000000..e1f7b6d2
Binary files /dev/null and b/Demos/ADMonSetup/SDebug/ADMonSetup_manifest.rc differ
diff --git a/Demos/ADMonSetup/SDebugA/ADMonSetup.exe.embed.manifest.res b/Demos/ADMonSetup/SDebugA/ADMonSetup.exe.embed.manifest.res
new file mode 100644
index 00000000..c4d02afa
Binary files /dev/null and b/Demos/ADMonSetup/SDebugA/ADMonSetup.exe.embed.manifest.res differ
diff --git a/Demos/ADMonSetup/SDebugA/ADMonSetup.res b/Demos/ADMonSetup/SDebugA/ADMonSetup.res
new file mode 100644
index 00000000..038f602c
Binary files /dev/null and b/Demos/ADMonSetup/SDebugA/ADMonSetup.res differ
diff --git a/Demos/ADMonSetup/SDebugA/ADMonSetup.unsuccessfulbuild b/Demos/ADMonSetup/SDebugA/ADMonSetup.unsuccessfulbuild
new file mode 100644
index 00000000..e69de29b
diff --git a/Demos/ADMonSetup/SDebugA/ADMonSetup_manifest.rc b/Demos/ADMonSetup/SDebugA/ADMonSetup_manifest.rc
new file mode 100644
index 00000000..0d84b8a3
Binary files /dev/null and b/Demos/ADMonSetup/SDebugA/ADMonSetup_manifest.rc differ
diff --git a/Demos/ADMonSetup/SRelease/ADMonSetup.res b/Demos/ADMonSetup/SRelease/ADMonSetup.res
new file mode 100644
index 00000000..038f602c
Binary files /dev/null and b/Demos/ADMonSetup/SRelease/ADMonSetup.res differ
diff --git a/Demos/ADMonSetup/SReleaseA/ADMonSetup.res b/Demos/ADMonSetup/SReleaseA/ADMonSetup.res
new file mode 100644
index 00000000..038f602c
Binary files /dev/null and b/Demos/ADMonSetup/SReleaseA/ADMonSetup.res differ
diff --git a/Demos/ADMonSetup/stdafx.h b/Demos/ADMonSetup/stdafx.h
index 8256d4e4..a030c5b7 100644
--- a/Demos/ADMonSetup/stdafx.h
+++ b/Demos/ADMonSetup/stdafx.h
@@ -11,10 +11,6 @@
// Windows Header Files:
#include
-// C RunTime Header Files
-//#include
-//#include
-//#include
#include
#include "..\..\DuiLib\UIlib.h"
@@ -22,9 +18,17 @@
using namespace DuiLib;
#ifdef _DEBUG
-# pragma comment(lib, "..\\..\\Lib\\DuiLib_d.lib")
+# ifdef _UNICODE
+# pragma comment(lib, "..\\..\\lib\\DuiLib_d.lib")
+# else
+# pragma comment(lib, "..\\..\\lib\\DuiLibA_d.lib")
+# endif
#else
-# pragma comment(lib, "..\\..\\Lib\\DuiLib.lib")
+# ifdef _UNICODE
+# pragma comment(lib, "..\\..\\lib\\DuiLib.lib")
+# else
+# pragma comment(lib, "..\\..\\lib\\DuiLibA.lib")
+# endif
#endif
diff --git a/Demos/bdwallpaper/BDWallPaper.vcxproj b/Demos/bdwallpaper/BDWallPaper.vcxproj
index 05b264ab..ee32f8cf 100644
--- a/Demos/bdwallpaper/BDWallPaper.vcxproj
+++ b/Demos/bdwallpaper/BDWallPaper.vcxproj
@@ -17,6 +17,22 @@
Release
Win32
+
+ SDebugA
+ Win32
+
+
+ SDebug
+ Win32
+
+
+ SReleaseA
+ Win32
+
+
+ SRelease
+ Win32
+
BDWallPaper
@@ -37,6 +53,16 @@
false
Unicode
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ false
+ MultiByte
+
Application
false
@@ -47,6 +73,16 @@
false
Unicode
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ false
+ MultiByte
+
Application
false
@@ -59,6 +95,14 @@
+
+
+
+
+
+
+
+
@@ -67,6 +111,14 @@
+
+
+
+
+
+
+
+
@@ -75,32 +127,60 @@
<_ProjectFileVersion>10.0.40219.1
$(SolutionDir)bin\
+ $(SolutionDir)bin\
+ $(SolutionDir)bin\
$(SolutionDir)bin\
$(SolutionDir)temp\BDWallPaper\$(Configuration)\
+ $(SolutionDir)temp\BDWallPaper\$(Configuration)\
+ $(SolutionDir)temp\BDWallPaper\$(Configuration)\
$(SolutionDir)temp\BDWallPaper\$(Configuration)\
true
+ true
+ true
true
$(SolutionDir)bin\
+ $(SolutionDir)bin\
+ $(SolutionDir)bin\
$(SolutionDir)bin\
$(SolutionDir)temp\BDWallPaper\$(Configuration)\
+ $(SolutionDir)temp\BDWallPaper\$(Configuration)\
+ $(SolutionDir)temp\BDWallPaper\$(Configuration)\
$(SolutionDir)temp\BDWallPaper\$(Configuration)\
false
+ false
+ false
false
AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
AllRules.ruleset
+
+
+
+
AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
AllRules.ruleset
+
+
+
+
$(ProjectName)_d
+ $(ProjectName)_d
+ $(ProjectName)_d
$(ProjectName)_d
$(ProjectName)
+ $(ProjectName)
+ $(ProjectName)
$(ProjectName)
@@ -143,6 +223,86 @@
.\Debug/BDWallPaper.bsc
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Debug/BDWallPaper.tlb
+
+
+
+
+ Disabled
+ WIN32;_DEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebug
+ Use
+ stdafx.h
+ true
+ Level3
+ true
+ ProgramDatabase
+ helper;controlex;helper\jsoncpp;
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ true
+ true
+ Windows
+ MachineX86
+
+
+ true
+ .\Debug/BDWallPaper.bsc
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Debug/BDWallPaper.tlb
+
+
+
+
+ Disabled
+ WIN32;_DEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebug
+ Use
+ stdafx.h
+ true
+ Level3
+ true
+ ProgramDatabase
+ helper;controlex;helper\jsoncpp;
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ true
+ true
+ Windows
+ MachineX86
+
+
+ true
+ .\Debug/BDWallPaper.bsc
+
+
_DEBUG;%(PreprocessorDefinitions)
@@ -222,6 +382,84 @@
.\Release/BDWallPaper.bsc
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Release/BDWallPaper.tlb
+
+
+
+
+ MinSpace
+ OnlyExplicitInline
+ WIN32;NDEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ MultiThreaded
+ true
+ Use
+ stdafx.h
+ Level3
+ true
+ helper;controlex;helper\jsoncpp;
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ Windows
+ MachineX86
+
+
+
+
+ true
+ .\Release/BDWallPaper.bsc
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Release/BDWallPaper.tlb
+
+
+
+
+ MinSpace
+ OnlyExplicitInline
+ WIN32;NDEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ MultiThreaded
+ true
+ Use
+ stdafx.h
+ Level3
+ true
+ helper;controlex;helper\jsoncpp;
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ Windows
+ MachineX86
+
+
+
+
+ true
+ .\Release/BDWallPaper.bsc
+
+
NDEBUG;%(PreprocessorDefinitions)
@@ -265,44 +503,72 @@
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
%(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
%(PreprocessorDefinitions)
Create
+ Create
+ Create
Create
%(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
%(PreprocessorDefinitions)
Create
+ Create
+ Create
Create
diff --git a/Demos/duidemo/MainWnd.h b/Demos/duidemo/MainWnd.h
index 4601c184..e0cec9cf 100644
--- a/Demos/duidemo/MainWnd.h
+++ b/Demos/duidemo/MainWnd.h
@@ -205,6 +205,39 @@ class CDemoFrame : public WindowImplBase, public CWebBrowserEventHandler, public
sIEPath.Format(_T("%s\\Internet Explorer\\iexplore.exe"), szPath);
ShellExecute(NULL, _T("open"), sIEPath, _T("tencent://Message/?Uin=656067418&Menu=yes"), NULL, SW_SHOW);
}
+ else if(sName.CompareNoCase(_T("menubtn")) == 0)
+ {
+ CMenuWnd* pMenu = new CMenuWnd();
+ CDuiPoint point;
+ ::GetCursorPos(&point);
+
+ pMenu->Init(NULL, _T("menu.xml"), point, &m_PaintManager);
+ CMenuUI* rootMenu = pMenu->GetMenuUI();
+ if (rootMenu != NULL)
+ {
+ CMenuElementUI* pNew = new CMenuElementUI;
+ pNew->SetName(_T("Menu_Dynamic"));
+ pNew->SetText(_T("动态一级菜单"));
+ pNew->SetShowExplandIcon(true);
+ pNew->SetIcon(_T("WebSit.png"));
+ pNew->SetIconSize(16,16);
+
+ CMenuElementUI* pSubNew = new CMenuElementUI;
+ pSubNew->SetText(_T("动态二级菜单"));
+ pSubNew->SetName(_T("Menu_Dynamic"));
+ pSubNew->SetIcon(_T("Virus.png"));
+ pSubNew->SetIconSize(16,16);
+ pNew->Add(pSubNew);
+ rootMenu->Add(pNew);
+ CMenuElementUI* pNew2 = new CMenuElementUI;
+ pNew2->SetName(_T("Menu_Dynamic"));
+ pNew2->SetText(_T("动态一级菜单2"));
+ rootMenu->AddAt(pNew2,2);
+ }
+
+ // 动态添加后重新设置菜单的大小
+ pMenu->ResizeMenu();
+ }
}
LRESULT OnSysCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
@@ -243,6 +276,37 @@ class CDemoFrame : public WindowImplBase, public CWebBrowserEventHandler, public
bHandled = TRUE;
return 0;
}
+ else if (uMsg == WM_MENUCLICK)
+ {
+ MenuCmd* pMenuCmd = (MenuCmd*)wParam;
+ if(pMenuCmd != NULL)
+ {
+ BOOL bChecked = pMenuCmd->bChecked;
+ CDuiString sMenuName = pMenuCmd->szName;
+ CDuiString sUserData = pMenuCmd->szUserData;
+ CDuiString sText = pMenuCmd->szText;
+ delete pMenuCmd;
+ pMenuCmd = NULL;
+
+ if ( sMenuName == _T("qianting"))
+ {
+ if (bChecked)
+ {
+ MessageBox(m_hWnd, _T("你预定修潜艇服务"), _T(""), 0);
+ }
+ else
+ {
+ MessageBox(m_hWnd, _T("你取消修潜艇服务"), NULL, 0);
+ }
+ }
+ else
+ {
+ MessageBox(m_hWnd, sText, NULL, 0);
+ }
+ }
+ bHandled = TRUE;
+ return 0;
+ }
bHandled = FALSE;
return 0;
}
@@ -254,4 +318,5 @@ class CDemoFrame : public WindowImplBase, public CWebBrowserEventHandler, public
CButtonUI* m_pRestoreBtn;
CButtonUI* m_pMinBtn;
CButtonUI* m_pSkinBtn;
+ std::map m_MenuInfos;
};
diff --git a/Demos/duidemo/duidemo.cpp b/Demos/duidemo/duidemo.cpp
index 8f7fb538..abb7313c 100644
--- a/Demos/duidemo/duidemo.cpp
+++ b/Demos/duidemo/duidemo.cpp
@@ -9,38 +9,9 @@
#include "MainWnd.h"
#include "PopWnd.h"
-static LPBYTE resource_zip_buffer_ = NULL;
-
-#define USE_EMBEDED_RESOURCE
-
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int nCmdShow)
{
CPaintManagerUI::SetInstance(hInstance);
-
-#ifdef USE_EMBEDED_RESOURCE
- HRSRC hResource = ::FindResource(CPaintManagerUI::GetResourceDll(), _T("IDR_ZIPRES"), _T("ZIPRES"));
- if( hResource == NULL )
- return 0L;
- DWORD dwSize = 0;
- HGLOBAL hGlobal = ::LoadResource(CPaintManagerUI::GetResourceDll(), hResource);
- if( hGlobal == NULL ) {
- FreeResource(hResource);
- return 0L;
- }
- dwSize = ::SizeofResource(CPaintManagerUI::GetResourceDll(), hResource);
- if( dwSize == 0 )
- return 0L;
- resource_zip_buffer_ = new BYTE[ dwSize ];
- if (resource_zip_buffer_ != NULL)
- {
- ::CopyMemory(resource_zip_buffer_, (LPBYTE)::LockResource(hGlobal), dwSize);
- }
-
- ::FreeResource(hResource);
- CPaintManagerUI::SetResourceZip(resource_zip_buffer_, dwSize);
-#else
- CPaintManagerUI::SetResourcePath(CPaintManagerUI::GetInstancePath() + _T("skin\\duidemo"));
-#endif
HRESULT Hr = ::CoInitialize(NULL);
@@ -50,9 +21,9 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*l
if( pFrame == NULL ) return 0;
pFrame->Create(NULL, _T("duilib例子演示"), UI_WNDSTYLE_FRAME, 0L, 0, 0, 800, 572);
pFrame->CenterWindow();
- pFrame->ShowModal();
- //::ShowWindow(*pFrame, SW_SHOW);
- //CPaintManagerUI::MessageLoop();
+ //pFrame->ShowModal();
+ ::ShowWindow(*pFrame, SW_SHOW);
+ CPaintManagerUI::MessageLoop();
::CoUninitialize();
return 0;
diff --git a/Demos/duidemo/duidemo.vcxproj b/Demos/duidemo/duidemo.vcxproj
index 34a4a412..38269914 100644
--- a/Demos/duidemo/duidemo.vcxproj
+++ b/Demos/duidemo/duidemo.vcxproj
@@ -17,6 +17,22 @@
Release
Win32
+
+ SDebugA
+ Win32
+
+
+ SDebug
+ Win32
+
+
+ SReleaseA
+ Win32
+
+
+ SRelease
+ Win32
+
duidemo
@@ -37,6 +53,16 @@
false
Unicode
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ false
+ MultiByte
+
Application
false
@@ -47,6 +73,16 @@
false
Unicode
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ false
+ MultiByte
+
Application
false
@@ -59,6 +95,14 @@
+
+
+
+
+
+
+
+
@@ -67,6 +111,14 @@
+
+
+
+
+
+
+
+
@@ -75,32 +127,60 @@
<_ProjectFileVersion>10.0.40219.1
$(SolutionDir)bin\
+ $(SolutionDir)bin\
+ $(SolutionDir)bin\
$(SolutionDir)bin\
$(SolutionDir)temp\duidemo\$(Configuration)\
+ $(SolutionDir)temp\duidemo\$(Configuration)\
+ $(SolutionDir)temp\duidemo\$(Configuration)\
$(SolutionDir)temp\duidemo\$(Configuration)\
true
+ true
+ true
true
$(SolutionDir)bin\
+ $(SolutionDir)bin\
+ $(SolutionDir)bin\
$(SolutionDir)bin\
$(SolutionDir)temp\duidemo\$(Configuration)\
+ $(SolutionDir)temp\duidemo\$(Configuration)\
+ $(SolutionDir)temp\duidemo\$(Configuration)\
$(SolutionDir)temp\duidemo\$(Configuration)\
false
+ false
+ false
false
AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
AllRules.ruleset
+
+
+
+
AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
AllRules.ruleset
+
+
+
+
$(ProjectName)_d
+ $(ProjectName)_d
+ $(ProjectName)_d
$(ProjectName)_d
$(ProjectName)
+ $(ProjectName)
+ $(ProjectName)
$(ProjectName)
@@ -118,6 +198,76 @@
WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
true
EnableFastChecks
+ MultiThreadedDebugDLL
+ Use
+ stdafx.h
+ Level3
+ true
+ ProgramDatabase
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ true
+ true
+ Windows
+ MachineX86
+
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Debug/duidemo.tlb
+
+
+
+
+ Disabled
+ WIN32;_DEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebug
+ Use
+ stdafx.h
+ Level3
+ true
+ ProgramDatabase
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ true
+ true
+ Windows
+ MachineX86
+
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Debug/duidemo.tlb
+
+
+
+
+ Disabled
+ WIN32;_DEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
MultiThreadedDebug
Use
stdafx.h
@@ -213,6 +363,80 @@
true
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Release/duidemo.tlb
+
+
+
+
+ MinSpace
+ OnlyExplicitInline
+ WIN32;NDEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ MultiThreaded
+ true
+ Use
+ stdafx.h
+ Level3
+ true
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ Windows
+ MachineX86
+
+
+
+
+ true
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Release/duidemo.tlb
+
+
+
+
+ MinSpace
+ OnlyExplicitInline
+ WIN32;NDEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ MultiThreaded
+ true
+ Use
+ stdafx.h
+ Level3
+ true
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ Windows
+ MachineX86
+
+
+
+
+ true
+
+
NDEBUG;%(PreprocessorDefinitions)
@@ -255,12 +479,20 @@
%(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
%(PreprocessorDefinitions)
Create
+ Create
+ Create
Create
%(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
%(PreprocessorDefinitions)
Create
+ Create
+ Create
Create
@@ -291,6 +523,7 @@
Designer
+
Designer
diff --git a/Demos/duidemo/duidemo.vcxproj.filters b/Demos/duidemo/duidemo.vcxproj.filters
index 17e6e48e..a2b82621 100644
--- a/Demos/duidemo/duidemo.vcxproj.filters
+++ b/Demos/duidemo/duidemo.vcxproj.filters
@@ -138,6 +138,9 @@
Resources\xmls
+
+ Resources\xmls
+
diff --git a/Demos/gamebox/GameBox.vcxproj b/Demos/gamebox/GameBox.vcxproj
index 3d94ac7f..5cfe7adc 100644
--- a/Demos/gamebox/GameBox.vcxproj
+++ b/Demos/gamebox/GameBox.vcxproj
@@ -17,6 +17,22 @@
Release
Win32
+
+ SDebugA
+ Win32
+
+
+ SDebug
+ Win32
+
+
+ SReleaseA
+ Win32
+
+
+ SRelease
+ Win32
+
GameBox
@@ -37,6 +53,16 @@
false
Unicode
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ false
+ MultiByte
+
Application
false
@@ -47,6 +73,16 @@
false
Unicode
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ false
+ MultiByte
+
Application
false
@@ -59,6 +95,14 @@
+
+
+
+
+
+
+
+
@@ -67,6 +111,14 @@
+
+
+
+
+
+
+
+
@@ -75,32 +127,60 @@
<_ProjectFileVersion>10.0.40219.1
$(SolutionDir)bin\
+ $(SolutionDir)bin\
+ $(SolutionDir)bin\
$(SolutionDir)bin\
$(SolutionDir)temp\gamebox\$(Configuration)\
+ $(SolutionDir)temp\gamebox\$(Configuration)\
+ $(SolutionDir)temp\gamebox\$(Configuration)\
$(SolutionDir)temp\gamebox\$(Configuration)\
true
+ true
+ true
true
$(SolutionDir)bin\
+ $(SolutionDir)bin\
+ $(SolutionDir)bin\
$(SolutionDir)bin\
$(SolutionDir)temp\gamebox\$(Configuration)\
+ $(SolutionDir)temp\gamebox\$(Configuration)\
+ $(SolutionDir)temp\gamebox\$(Configuration)\
$(SolutionDir)temp\gamebox\$(Configuration)\
false
+ false
+ false
false
AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
AllRules.ruleset
+
+
+
+
AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
AllRules.ruleset
+
+
+
+
$(ProjectName)_d
+ $(ProjectName)_d
+ $(ProjectName)_d
$(ProjectName)_d
$(ProjectName)
+ $(ProjectName)
+ $(ProjectName)
$(ProjectName)
@@ -142,6 +222,84 @@
.\Debug/GameBox.bsc
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Debug/GameBox.tlb
+
+
+
+
+ Disabled
+ WIN32;_DEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebug
+ Use
+ stdafx.h
+ true
+ Level3
+ true
+ ProgramDatabase
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ true
+ true
+ Windows
+ MachineX86
+
+
+ true
+ .\Debug/GameBox.bsc
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Debug/GameBox.tlb
+
+
+
+
+ Disabled
+ WIN32;_DEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebug
+ Use
+ stdafx.h
+ true
+ Level3
+ true
+ ProgramDatabase
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ true
+ true
+ Windows
+ MachineX86
+
+
+ true
+ .\Debug/GameBox.bsc
+
+
_DEBUG;%(PreprocessorDefinitions)
@@ -219,6 +377,82 @@
.\Release/GameBox.bsc
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Release/GameBox.tlb
+
+
+
+
+ MinSpace
+ OnlyExplicitInline
+ WIN32;NDEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ MultiThreaded
+ true
+ Use
+ stdafx.h
+ Level3
+ true
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ Windows
+ MachineX86
+
+
+
+
+ true
+ .\Release/GameBox.bsc
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Release/GameBox.tlb
+
+
+
+
+ MinSpace
+ OnlyExplicitInline
+ WIN32;NDEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ MultiThreaded
+ true
+ Use
+ stdafx.h
+ Level3
+ true
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ Windows
+ MachineX86
+
+
+
+
+ true
+ .\Release/GameBox.bsc
+
+
NDEBUG;%(PreprocessorDefinitions)
@@ -263,24 +497,40 @@
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
%(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
%(PreprocessorDefinitions)
Create
+ Create
+ Create
Create
%(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
%(PreprocessorDefinitions)
Create
+ Create
+ Create
Create
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
diff --git a/Demos/transwnd/transwnd.vcxproj b/Demos/transwnd/transwnd.vcxproj
index 431399e8..4484f798 100644
--- a/Demos/transwnd/transwnd.vcxproj
+++ b/Demos/transwnd/transwnd.vcxproj
@@ -17,6 +17,22 @@
Release
Win32
+
+ SDebugA
+ Win32
+
+
+ SDebug
+ Win32
+
+
+ SReleaseA
+ Win32
+
+
+ SRelease
+ Win32
+
transwnd
@@ -37,6 +53,16 @@
false
Unicode
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ false
+ MultiByte
+
Application
false
@@ -47,6 +73,16 @@
false
Unicode
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ false
+ MultiByte
+
Application
false
@@ -59,6 +95,14 @@
+
+
+
+
+
+
+
+
@@ -67,6 +111,14 @@
+
+
+
+
+
+
+
+
@@ -75,32 +127,60 @@
<_ProjectFileVersion>10.0.40219.1
$(SolutionDir)bin\
+ $(SolutionDir)bin\
+ $(SolutionDir)bin\
$(SolutionDir)bin\
$(SolutionDir)temp\transwnd\$(Configuration)\
+ $(SolutionDir)temp\transwnd\$(Configuration)\
+ $(SolutionDir)temp\transwnd\$(Configuration)\
$(SolutionDir)temp\transwnd\$(Configuration)\
true
+ true
+ true
true
$(SolutionDir)bin\
+ $(SolutionDir)bin\
+ $(SolutionDir)bin\
$(SolutionDir)bin\
$(SolutionDir)temp\transwnd\$(Configuration)\
+ $(SolutionDir)temp\transwnd\$(Configuration)\
+ $(SolutionDir)temp\transwnd\$(Configuration)\
$(SolutionDir)temp\transwnd\$(Configuration)\
false
+ false
+ false
false
AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
AllRules.ruleset
+
+
+
+
AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
AllRules.ruleset
+
+
+
+
$(ProjectName)_d
+ $(ProjectName)_d
+ $(ProjectName)_d
$(ProjectName)_d
$(ProjectName)
+ $(ProjectName)
+ $(ProjectName)
$(ProjectName)
@@ -141,6 +221,82 @@
true
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Debug/transwnd.tlb
+
+
+
+
+ Disabled
+ WIN32;_DEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebug
+ Use
+ stdafx.h
+ true
+ Level3
+ true
+ ProgramDatabase
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ true
+ true
+ Windows
+ MachineX86
+
+
+ true
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Debug/transwnd.tlb
+
+
+
+
+ Disabled
+ WIN32;_DEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebug
+ Use
+ stdafx.h
+ true
+ Level3
+ true
+ ProgramDatabase
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ true
+ true
+ Windows
+ MachineX86
+
+
+ true
+
+
_DEBUG;%(PreprocessorDefinitions)
@@ -215,6 +371,80 @@
true
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Release/transwnd.tlb
+
+
+
+
+ MinSpace
+ OnlyExplicitInline
+ WIN32;NDEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ MultiThreaded
+ true
+ Use
+ stdafx.h
+ Level3
+ true
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ Windows
+ MachineX86
+
+
+
+
+ true
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Release/transwnd.tlb
+
+
+
+
+ MinSpace
+ OnlyExplicitInline
+ WIN32;NDEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ MultiThreaded
+ true
+ Use
+ stdafx.h
+ Level3
+ true
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ Windows
+ MachineX86
+
+
+
+
+ true
+
+
NDEBUG;%(PreprocessorDefinitions)
@@ -256,12 +486,20 @@
%(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
%(PreprocessorDefinitions)
Create
+ Create
+ Create
Create
%(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
%(PreprocessorDefinitions)
Create
+ Create
+ Create
Create
diff --git a/Demos/xlgamebox/XLGameBox.vcxproj b/Demos/xlgamebox/XLGameBox.vcxproj
index 797276db..0be92b7d 100644
--- a/Demos/xlgamebox/XLGameBox.vcxproj
+++ b/Demos/xlgamebox/XLGameBox.vcxproj
@@ -9,6 +9,22 @@
Release
Win32
+
+ SDebugA
+ Win32
+
+
+ SDebug
+ Win32
+
+
+ SReleaseA
+ Win32
+
+
+ SRelease
+ Win32
+
XLGameBox
@@ -29,11 +45,31 @@
false
Unicode
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ false
+ MultiByte
+
Application
false
Unicode
+
+ Application
+ false
+ Unicode
+
+
+ Application
+ false
+ MultiByte
+
@@ -41,27 +77,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<_ProjectFileVersion>10.0.40219.1
$(SolutionDir)bin\
+ $(SolutionDir)bin\
+ $(SolutionDir)bin\
$(SolutionDir)temp\XLGameBox\release\
+ $(SolutionDir)temp\XLGameBox\release\
+ $(SolutionDir)temp\XLGameBox\release\
true
+ true
+ true
$(SolutionDir)bin\
+ $(SolutionDir)bin\
+ $(SolutionDir)bin\
$(SolutionDir)temp\XLGameBox\release\
+ $(SolutionDir)temp\XLGameBox\release\
+ $(SolutionDir)temp\XLGameBox\release\
false
+ false
+ false
AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
+
+
+
+
AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
+
+
+
+
$(ProjectName)_d
+ $(ProjectName)_d
+ $(ProjectName)_d
$(ProjectName)
+ $(ProjectName)
+ $(ProjectName)
@@ -102,6 +182,84 @@
.\Debug/XLGameBox.bsc
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Debug/XLGameBox.tlb
+
+
+
+
+ Disabled
+ WIN32;_DEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebug
+ Use
+ stdafx.h
+ true
+ Level3
+ true
+ ProgramDatabase
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ true
+ true
+ Windows
+ MachineX86
+
+
+ true
+ .\Debug/XLGameBox.bsc
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Debug/XLGameBox.tlb
+
+
+
+
+ Disabled
+ WIN32;_DEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebug
+ Use
+ stdafx.h
+ true
+ Level3
+ true
+ ProgramDatabase
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ true
+ true
+ Windows
+ MachineX86
+
+
+ true
+ .\Debug/XLGameBox.bsc
+
+
NDEBUG;%(PreprocessorDefinitions)
@@ -139,6 +297,82 @@
.\Release/XLGameBox.bsc
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Release/XLGameBox.tlb
+
+
+
+
+ MinSpace
+ OnlyExplicitInline
+ WIN32;NDEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ MultiThreaded
+ true
+ Use
+ stdafx.h
+ Level3
+ true
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ Windows
+ MachineX86
+
+
+
+
+ true
+ .\Release/XLGameBox.bsc
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Release/XLGameBox.tlb
+
+
+
+
+ MinSpace
+ OnlyExplicitInline
+ WIN32;NDEBUG;UILIB_STATIC;_WINDOWS;%(PreprocessorDefinitions)
+ true
+ MultiThreaded
+ true
+ Use
+ stdafx.h
+ Level3
+ true
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ Windows
+ MachineX86
+
+
+
+
+ true
+ .\Release/XLGameBox.bsc
+
+
@@ -147,17 +381,33 @@
NotUsing
+ NotUsing
+ NotUsing
NotUsing
+ NotUsing
+ NotUsing
%(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
Create
+ Create
+ Create
%(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
+ %(PreprocessorDefinitions)
Create
+ Create
+ Create
NotUsing
+ NotUsing
+ NotUsing
NotUsing
+ NotUsing
+ NotUsing
diff --git a/DuiLib.sln b/DuiLib.sln
index dc39d17c..4a3bd446 100644
--- a/DuiLib.sln
+++ b/DuiLib.sln
@@ -26,6 +26,10 @@ Global
DebugA|Win32 = DebugA|Win32
Release|Win32 = Release|Win32
ReleaseA|Win32 = ReleaseA|Win32
+ SDebug|Win32 = SDebug|Win32
+ SDebugA|Win32 = SDebugA|Win32
+ SRelease|Win32 = SRelease|Win32
+ SReleaseA|Win32 = SReleaseA|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E106ACD7-4E53-4AEE-942B-D0DD426DB34E}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -36,6 +40,14 @@ Global
{E106ACD7-4E53-4AEE-942B-D0DD426DB34E}.Release|Win32.Build.0 = Release|Win32
{E106ACD7-4E53-4AEE-942B-D0DD426DB34E}.ReleaseA|Win32.ActiveCfg = ReleaseA|Win32
{E106ACD7-4E53-4AEE-942B-D0DD426DB34E}.ReleaseA|Win32.Build.0 = ReleaseA|Win32
+ {E106ACD7-4E53-4AEE-942B-D0DD426DB34E}.SDebug|Win32.ActiveCfg = SDebug|Win32
+ {E106ACD7-4E53-4AEE-942B-D0DD426DB34E}.SDebug|Win32.Build.0 = SDebug|Win32
+ {E106ACD7-4E53-4AEE-942B-D0DD426DB34E}.SDebugA|Win32.ActiveCfg = SDebugA|Win32
+ {E106ACD7-4E53-4AEE-942B-D0DD426DB34E}.SDebugA|Win32.Build.0 = SDebugA|Win32
+ {E106ACD7-4E53-4AEE-942B-D0DD426DB34E}.SRelease|Win32.ActiveCfg = SRelease|Win32
+ {E106ACD7-4E53-4AEE-942B-D0DD426DB34E}.SRelease|Win32.Build.0 = SRelease|Win32
+ {E106ACD7-4E53-4AEE-942B-D0DD426DB34E}.SReleaseA|Win32.ActiveCfg = SReleaseA|Win32
+ {E106ACD7-4E53-4AEE-942B-D0DD426DB34E}.SReleaseA|Win32.Build.0 = SReleaseA|Win32
{565089A1-60C0-4281-99D7-A459E7354EEF}.Debug|Win32.ActiveCfg = Debug|Win32
{565089A1-60C0-4281-99D7-A459E7354EEF}.Debug|Win32.Build.0 = Debug|Win32
{565089A1-60C0-4281-99D7-A459E7354EEF}.DebugA|Win32.ActiveCfg = DebugA|Win32
@@ -44,6 +56,14 @@ Global
{565089A1-60C0-4281-99D7-A459E7354EEF}.Release|Win32.Build.0 = Release|Win32
{565089A1-60C0-4281-99D7-A459E7354EEF}.ReleaseA|Win32.ActiveCfg = ReleaseA|Win32
{565089A1-60C0-4281-99D7-A459E7354EEF}.ReleaseA|Win32.Build.0 = ReleaseA|Win32
+ {565089A1-60C0-4281-99D7-A459E7354EEF}.SDebug|Win32.ActiveCfg = SDebug|Win32
+ {565089A1-60C0-4281-99D7-A459E7354EEF}.SDebug|Win32.Build.0 = SDebug|Win32
+ {565089A1-60C0-4281-99D7-A459E7354EEF}.SDebugA|Win32.ActiveCfg = SDebugA|Win32
+ {565089A1-60C0-4281-99D7-A459E7354EEF}.SDebugA|Win32.Build.0 = SDebugA|Win32
+ {565089A1-60C0-4281-99D7-A459E7354EEF}.SRelease|Win32.ActiveCfg = SRelease|Win32
+ {565089A1-60C0-4281-99D7-A459E7354EEF}.SRelease|Win32.Build.0 = SRelease|Win32
+ {565089A1-60C0-4281-99D7-A459E7354EEF}.SReleaseA|Win32.ActiveCfg = SReleaseA|Win32
+ {565089A1-60C0-4281-99D7-A459E7354EEF}.SReleaseA|Win32.Build.0 = SReleaseA|Win32
{54019823-E923-44D0-AD60-8EB636D107DC}.Debug|Win32.ActiveCfg = Debug|Win32
{54019823-E923-44D0-AD60-8EB636D107DC}.Debug|Win32.Build.0 = Debug|Win32
{54019823-E923-44D0-AD60-8EB636D107DC}.DebugA|Win32.ActiveCfg = DebugA|Win32
@@ -52,6 +72,14 @@ Global
{54019823-E923-44D0-AD60-8EB636D107DC}.Release|Win32.Build.0 = Release|Win32
{54019823-E923-44D0-AD60-8EB636D107DC}.ReleaseA|Win32.ActiveCfg = ReleaseA|Win32
{54019823-E923-44D0-AD60-8EB636D107DC}.ReleaseA|Win32.Build.0 = ReleaseA|Win32
+ {54019823-E923-44D0-AD60-8EB636D107DC}.SDebug|Win32.ActiveCfg = SDebug|Win32
+ {54019823-E923-44D0-AD60-8EB636D107DC}.SDebug|Win32.Build.0 = SDebug|Win32
+ {54019823-E923-44D0-AD60-8EB636D107DC}.SDebugA|Win32.ActiveCfg = SDebugA|Win32
+ {54019823-E923-44D0-AD60-8EB636D107DC}.SDebugA|Win32.Build.0 = SDebugA|Win32
+ {54019823-E923-44D0-AD60-8EB636D107DC}.SRelease|Win32.ActiveCfg = SRelease|Win32
+ {54019823-E923-44D0-AD60-8EB636D107DC}.SRelease|Win32.Build.0 = SRelease|Win32
+ {54019823-E923-44D0-AD60-8EB636D107DC}.SReleaseA|Win32.ActiveCfg = SReleaseA|Win32
+ {54019823-E923-44D0-AD60-8EB636D107DC}.SReleaseA|Win32.Build.0 = SReleaseA|Win32
{3EF9795D-3509-4664-8E73-8D315CC0B944}.Debug|Win32.ActiveCfg = Debug|Win32
{3EF9795D-3509-4664-8E73-8D315CC0B944}.Debug|Win32.Build.0 = Debug|Win32
{3EF9795D-3509-4664-8E73-8D315CC0B944}.DebugA|Win32.ActiveCfg = DebugA|Win32
@@ -60,6 +88,14 @@ Global
{3EF9795D-3509-4664-8E73-8D315CC0B944}.Release|Win32.Build.0 = Release|Win32
{3EF9795D-3509-4664-8E73-8D315CC0B944}.ReleaseA|Win32.ActiveCfg = ReleaseA|Win32
{3EF9795D-3509-4664-8E73-8D315CC0B944}.ReleaseA|Win32.Build.0 = ReleaseA|Win32
+ {3EF9795D-3509-4664-8E73-8D315CC0B944}.SDebug|Win32.ActiveCfg = SDebug|Win32
+ {3EF9795D-3509-4664-8E73-8D315CC0B944}.SDebug|Win32.Build.0 = SDebug|Win32
+ {3EF9795D-3509-4664-8E73-8D315CC0B944}.SDebugA|Win32.ActiveCfg = SDebugA|Win32
+ {3EF9795D-3509-4664-8E73-8D315CC0B944}.SDebugA|Win32.Build.0 = SDebugA|Win32
+ {3EF9795D-3509-4664-8E73-8D315CC0B944}.SRelease|Win32.ActiveCfg = SRelease|Win32
+ {3EF9795D-3509-4664-8E73-8D315CC0B944}.SRelease|Win32.Build.0 = SRelease|Win32
+ {3EF9795D-3509-4664-8E73-8D315CC0B944}.SReleaseA|Win32.ActiveCfg = SReleaseA|Win32
+ {3EF9795D-3509-4664-8E73-8D315CC0B944}.SReleaseA|Win32.Build.0 = SReleaseA|Win32
{2C0EADA2-111E-4D58-B171-B1C896D7A0DE}.Debug|Win32.ActiveCfg = Debug|Win32
{2C0EADA2-111E-4D58-B171-B1C896D7A0DE}.Debug|Win32.Build.0 = Debug|Win32
{2C0EADA2-111E-4D58-B171-B1C896D7A0DE}.DebugA|Win32.ActiveCfg = DebugA|Win32
@@ -68,6 +104,14 @@ Global
{2C0EADA2-111E-4D58-B171-B1C896D7A0DE}.Release|Win32.Build.0 = Release|Win32
{2C0EADA2-111E-4D58-B171-B1C896D7A0DE}.ReleaseA|Win32.ActiveCfg = ReleaseA|Win32
{2C0EADA2-111E-4D58-B171-B1C896D7A0DE}.ReleaseA|Win32.Build.0 = ReleaseA|Win32
+ {2C0EADA2-111E-4D58-B171-B1C896D7A0DE}.SDebug|Win32.ActiveCfg = SDebug|Win32
+ {2C0EADA2-111E-4D58-B171-B1C896D7A0DE}.SDebug|Win32.Build.0 = SDebug|Win32
+ {2C0EADA2-111E-4D58-B171-B1C896D7A0DE}.SDebugA|Win32.ActiveCfg = SDebugA|Win32
+ {2C0EADA2-111E-4D58-B171-B1C896D7A0DE}.SDebugA|Win32.Build.0 = SDebugA|Win32
+ {2C0EADA2-111E-4D58-B171-B1C896D7A0DE}.SRelease|Win32.ActiveCfg = SRelease|Win32
+ {2C0EADA2-111E-4D58-B171-B1C896D7A0DE}.SRelease|Win32.Build.0 = SRelease|Win32
+ {2C0EADA2-111E-4D58-B171-B1C896D7A0DE}.SReleaseA|Win32.ActiveCfg = SReleaseA|Win32
+ {2C0EADA2-111E-4D58-B171-B1C896D7A0DE}.SReleaseA|Win32.Build.0 = SReleaseA|Win32
{0278E09B-92AA-4C18-ACB5-EEDF958395B1}.Debug|Win32.ActiveCfg = Debug|Win32
{0278E09B-92AA-4C18-ACB5-EEDF958395B1}.Debug|Win32.Build.0 = Debug|Win32
{0278E09B-92AA-4C18-ACB5-EEDF958395B1}.DebugA|Win32.ActiveCfg = Debug|Win32
@@ -76,6 +120,14 @@ Global
{0278E09B-92AA-4C18-ACB5-EEDF958395B1}.Release|Win32.Build.0 = Release|Win32
{0278E09B-92AA-4C18-ACB5-EEDF958395B1}.ReleaseA|Win32.ActiveCfg = Release|Win32
{0278E09B-92AA-4C18-ACB5-EEDF958395B1}.ReleaseA|Win32.Build.0 = Release|Win32
+ {0278E09B-92AA-4C18-ACB5-EEDF958395B1}.SDebug|Win32.ActiveCfg = SDebug|Win32
+ {0278E09B-92AA-4C18-ACB5-EEDF958395B1}.SDebug|Win32.Build.0 = SDebug|Win32
+ {0278E09B-92AA-4C18-ACB5-EEDF958395B1}.SDebugA|Win32.ActiveCfg = SDebugA|Win32
+ {0278E09B-92AA-4C18-ACB5-EEDF958395B1}.SDebugA|Win32.Build.0 = SDebugA|Win32
+ {0278E09B-92AA-4C18-ACB5-EEDF958395B1}.SRelease|Win32.ActiveCfg = SRelease|Win32
+ {0278E09B-92AA-4C18-ACB5-EEDF958395B1}.SRelease|Win32.Build.0 = SRelease|Win32
+ {0278E09B-92AA-4C18-ACB5-EEDF958395B1}.SReleaseA|Win32.ActiveCfg = SReleaseA|Win32
+ {0278E09B-92AA-4C18-ACB5-EEDF958395B1}.SReleaseA|Win32.Build.0 = SReleaseA|Win32
{46E0954B-D9BE-48D6-8573-10B4F41E0171}.Debug|Win32.ActiveCfg = Debug|Win32
{46E0954B-D9BE-48D6-8573-10B4F41E0171}.Debug|Win32.Build.0 = Debug|Win32
{46E0954B-D9BE-48D6-8573-10B4F41E0171}.DebugA|Win32.ActiveCfg = Debug|Win32
@@ -84,6 +136,14 @@ Global
{46E0954B-D9BE-48D6-8573-10B4F41E0171}.Release|Win32.Build.0 = Release|Win32
{46E0954B-D9BE-48D6-8573-10B4F41E0171}.ReleaseA|Win32.ActiveCfg = Release|Win32
{46E0954B-D9BE-48D6-8573-10B4F41E0171}.ReleaseA|Win32.Build.0 = Release|Win32
+ {46E0954B-D9BE-48D6-8573-10B4F41E0171}.SDebug|Win32.ActiveCfg = SDebug|Win32
+ {46E0954B-D9BE-48D6-8573-10B4F41E0171}.SDebug|Win32.Build.0 = SDebug|Win32
+ {46E0954B-D9BE-48D6-8573-10B4F41E0171}.SDebugA|Win32.ActiveCfg = SDebugA|Win32
+ {46E0954B-D9BE-48D6-8573-10B4F41E0171}.SDebugA|Win32.Build.0 = SDebugA|Win32
+ {46E0954B-D9BE-48D6-8573-10B4F41E0171}.SRelease|Win32.ActiveCfg = SRelease|Win32
+ {46E0954B-D9BE-48D6-8573-10B4F41E0171}.SRelease|Win32.Build.0 = SRelease|Win32
+ {46E0954B-D9BE-48D6-8573-10B4F41E0171}.SReleaseA|Win32.ActiveCfg = SReleaseA|Win32
+ {46E0954B-D9BE-48D6-8573-10B4F41E0171}.SReleaseA|Win32.Build.0 = SReleaseA|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/DuiLib.suo b/DuiLib.suo
index 48e221e6..ce78bb49 100644
Binary files a/DuiLib.suo and b/DuiLib.suo differ
diff --git a/DuiLib/Control/UIList.cpp b/DuiLib/Control/UIList.cpp
index c7327318..5f420138 100644
--- a/DuiLib/Control/UIList.cpp
+++ b/DuiLib/Control/UIList.cpp
@@ -1048,9 +1048,11 @@ void CListBodyUI::SetPos(RECT rc, bool bNeedInvalidate)
CListHeaderUI* pHeader = m_pOwner->GetHeader();
if( pHeader != NULL && pHeader->GetCount() > 0 ) {
cxNeeded = MAX(0, pHeader->EstimateSize(CDuiSize(rc.right - rc.left, rc.bottom - rc.top)).cx);
- if ( m_pVerticalScrollBar && m_pVerticalScrollBar->IsVisible())
+ if ( m_pHorizontalScrollBar && m_pHorizontalScrollBar->IsVisible())
{
+ int nOffset = m_pHorizontalScrollBar->GetScrollPos();
RECT rcHeader = pHeader->GetPos();
+ rcHeader.left = rc.left - nOffset;
pHeader->SetPos(rcHeader);
}
}
@@ -2473,7 +2475,23 @@ void CListContainerElementUI::DoEvent(TEventUI& event)
}
return;
}
-
+ if( event.Type == UIEVENT_TIMER )
+ {
+ m_pManager->SendNotify(this, DUI_MSGTYPE_TIMER, event.wParam, event.lParam);
+ return;
+ }
+ if( event.Type == UIEVENT_TIMER )
+ {
+ m_pManager->SendNotify(this, DUI_MSGTYPE_TIMER, event.wParam, event.lParam);
+ return;
+ }
+ if( event.Type == UIEVENT_CONTEXTMENU )
+ {
+ if( IsContextMenuUsed() ) {
+ m_pManager->SendNotify(this, DUI_MSGTYPE_MENU, event.wParam, event.lParam);
+ return;
+ }
+ }
// An important twist: The list-item will send the event not to its immediate
// parent but to the "attached" list. A list may actually embed several components
// in its path to the item, but key-presses etc. needs to go to the actual list.
diff --git a/DuiLib/Control/UIMenu.cpp b/DuiLib/Control/UIMenu.cpp
index d6bdc087..13016276 100644
--- a/DuiLib/Control/UIMenu.cpp
+++ b/DuiLib/Control/UIMenu.cpp
@@ -234,7 +234,7 @@ void CMenuWnd::OnFinalMessage(HWND hWnd)
m_pOwner->m_uButtonState &= ~ UISTATE_PUSHED;
m_pOwner->Invalidate();
}
- delete this;
+ //delete this;
}
LRESULT CMenuWnd::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
@@ -716,7 +716,6 @@ SIZE CMenuElementUI::EstimateSize(SIZE szAvailable)
void CMenuElementUI::DoEvent(TEventUI& event)
{
-
if( event.Type == UIEVENT_MOUSEENTER )
{
CListContainerElementUI::DoEvent(event);
@@ -773,9 +772,16 @@ void CMenuElementUI::DoEvent(TEventUI& event)
SetChecked(!GetChecked());
if (CMenuWnd::GetGlobalContextMenuObserver().GetManager() != NULL)
{
- CDuiString* strPost = new CDuiString(GetName().GetData());
- if (!PostMessage(CMenuWnd::GetGlobalContextMenuObserver().GetManager()->GetPaintWindow(), WM_MENUCLICK, (WPARAM)(strPost), (LPARAM)(GetChecked() == TRUE)))
- delete strPost;
+ MenuCmd* pMenuCmd = new MenuCmd();
+ lstrcpy(pMenuCmd->szName, GetName().GetData());
+ lstrcpy(pMenuCmd->szUserData, GetUserData().GetData());
+ lstrcpy(pMenuCmd->szText, GetText().GetData());
+ pMenuCmd->bChecked = GetChecked();
+ if (!PostMessage(CMenuWnd::GetGlobalContextMenuObserver().GetManager()->GetPaintWindow(), WM_MENUCLICK, (WPARAM)pMenuCmd, NULL))
+ {
+ delete pMenuCmd;
+ pMenuCmd = NULL;
+ }
}
ContextMenuParam param;
param.hWnd = m_pManager->GetPaintWindow();
diff --git a/DuiLib/Control/UIMenu.h b/DuiLib/Control/UIMenu.h
index e953e217..b51ab3b2 100644
--- a/DuiLib/Control/UIMenu.h
+++ b/DuiLib/Control/UIMenu.h
@@ -16,6 +16,14 @@ struct ContextMenuParam
HWND hWnd;
};
+struct MenuCmd
+{
+ TCHAR szName[256];
+ TCHAR szUserData[1024];
+ TCHAR szText[1024];
+ BOOL bChecked;
+};
+
enum MenuAlignment
{
eMenuAlignment_Left = 1 << 1,
diff --git a/DuiLib/DuiLib.vcxproj b/DuiLib/DuiLib.vcxproj
index 54c82d0f..580e62a5 100644
--- a/DuiLib/DuiLib.vcxproj
+++ b/DuiLib/DuiLib.vcxproj
@@ -17,6 +17,22 @@
Release
Win32
+
+ SDebugA
+ Win32
+
+
+ SDebug
+ Win32
+
+
+ SReleaseA
+ Win32
+
+
+ SRelease
+ Win32
+
{E106ACD7-4E53-4AEE-942B-D0DD426DB34E}
@@ -27,6 +43,14 @@
DynamicLibrary
Unicode
+
+ StaticLibrary
+ Unicode
+
+
+ StaticLibrary
+ MultiByte
+
DynamicLibrary
MultiByte
@@ -35,6 +59,14 @@
DynamicLibrary
Unicode
+
+ StaticLibrary
+ Unicode
+
+
+ StaticLibrary
+ MultiByte
+
DynamicLibrary
MultiByte
@@ -46,6 +78,14 @@
+
+
+
+
+
+
+
+
@@ -54,6 +94,14 @@
+
+
+
+
+
+
+
+
@@ -62,40 +110,75 @@
<_ProjectFileVersion>10.0.30319.1
false
+ false
+ false
false
false
+ false
+ false
false
false
+ false
+ false
false
false
+ false
+ false
false
false
+ false
+ false
false
false
+ false
+ false
false
AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
AllRules.ruleset
+
+
+
+
AllRules.ruleset
+ AllRules.ruleset
+ AllRules.ruleset
AllRules.ruleset
+
+
+
+
$(ProjectName)_d
+ $(ProjectName)_d
+ $(ProjectName)A_d
$(ProjectName)A_d
$(SolutionDir)Temp\$(Configuration)\
+ $(SolutionDir)Temp\$(Configuration)\
+ $(SolutionDir)Temp\$(Configuration)\
$(SolutionDir)Temp\$(Configuration)\
$(SolutionDir)Temp\$(Configuration)\
+ $(SolutionDir)Temp\$(Configuration)\
+ $(SolutionDir)Temp\$(Configuration)\
$(SolutionDir)Temp\$(Configuration)\
$(SolutionDir)Bin\
+ $(SolutionDir)Lib\
+ $(SolutionDir)Lib\
$(SolutionDir)Bin\
$(SolutionDir)Bin\
+ $(SolutionDir)Lib\
+ $(SolutionDir)Lib\
$(SolutionDir)Bin\
$(ProjectName)A
+ $(ProjectName)A
@@ -134,6 +217,80 @@
true
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Debug/DuiLib.tlb
+
+
+
+
+ Disabled
+ WIN32;_DEBUG;_WINDOWS;UILIB_STATIC;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebug
+ Use
+ Level3
+ true
+ ProgramDatabase
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ true
+ true
+ $(OutDir)$(TargetName).pdb
+ 0x11000000
+ MachineX86
+ $(SolutionDir)Lib\$(ProjectName)_d.lib
+
+
+ true
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Debug/DuiLib.tlb
+
+
+
+
+ Disabled
+ WIN32;_DEBUG;_WINDOWS;UILIB_STATIC;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebug
+ Use
+ Level3
+ true
+ ProgramDatabase
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ true
+ true
+ $(OutDir)$(TargetName).pdb
+ 0x11000000
+ MachineX86
+ $(SolutionDir)Lib\$(ProjectName)_d.lib
+
+
+ true
+
+
_DEBUG;%(PreprocessorDefinitions)
@@ -190,7 +347,81 @@
Use
Level3
true
- MultiThreadedDLL
+ MultiThreaded
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ 0x11000000
+ MachineX86
+ $(OutDir)$(TargetName).pdb
+ $(SolutionDir)Lib\$(ProjectName).lib
+ true
+
+
+ true
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Release/DuiLib.tlb
+
+
+
+
+ MinSpace
+ OnlyExplicitInline
+ WIN32;NDEBUG;_WINDOWS;UILIB_STATIC;%(PreprocessorDefinitions)
+ true
+ true
+ Use
+ Level3
+ true
+ MultiThreaded
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0406
+
+
+ true
+ 0x11000000
+ MachineX86
+ $(OutDir)$(TargetName).pdb
+ $(SolutionDir)Lib\$(ProjectName).lib
+ true
+
+
+ true
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ true
+ true
+ Win32
+ .\Release/DuiLib.tlb
+
+
+
+
+ MinSpace
+ OnlyExplicitInline
+ WIN32;NDEBUG;_WINDOWS;UILIB_STATIC;%(PreprocessorDefinitions)
+ true
+ true
+ Use
+ Level3
+ true
+ MultiThreaded
NDEBUG;%(PreprocessorDefinitions)
@@ -251,8 +482,12 @@
Create
+ Create
+ Create
Create
Create
+ Create
+ Create
Create
@@ -261,10 +496,18 @@
+
+
+
+
+
+
+
+
@@ -273,10 +516,18 @@
+
+
+
+
+
+
+
+
diff --git a/DuiLib/UIlib.h b/DuiLib/UIlib.h
index b2b1dbb2..afe7192c 100644
--- a/DuiLib/UIlib.h
+++ b/DuiLib/UIlib.h
@@ -1,3 +1,6 @@
+#ifdef UILIB_STATIC
+#define UILIB_API
+#else
#if defined(UILIB_EXPORTS)
# if defined(_MSC_VER)
# define UILIB_API __declspec(dllexport)
@@ -11,7 +14,7 @@
# define UILIB_API
# endif
#endif
-
+#endif
#define UILIB_COMDAT __declspec(selectany)
#if defined _M_IX86
@@ -85,4 +88,6 @@
#include "Control/UIMenu.h"
-#pragma comment(lib,"gdiplus.lib")
\ No newline at end of file
+#pragma comment( lib, "comctl32.lib" )
+#pragma comment( lib, "GdiPlus.lib" )
+#pragma comment( lib, "Imm32.lib" )
\ No newline at end of file
diff --git a/bin/skin/duidemo/main.xml b/bin/skin/duidemo/main.xml
index 885f6ae8..fc9c7764 100644
--- a/bin/skin/duidemo/main.xml
+++ b/bin/skin/duidemo/main.xml
@@ -15,13 +15,14 @@
-
-
+
+
-
+
+
diff --git a/bin/skin/duidemo/menu.xml b/bin/skin/duidemo/menu.xml
new file mode 100644
index 00000000..a8200d59
--- /dev/null
+++ b/bin/skin/duidemo/menu.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/skin/duidemo/menu/icon.png b/bin/skin/duidemo/menu/icon.png
new file mode 100644
index 00000000..87852c5b
Binary files /dev/null and b/bin/skin/duidemo/menu/icon.png differ
diff --git a/bin/skin/duidemo/menu/menu_bk.png b/bin/skin/duidemo/menu/menu_bk.png
new file mode 100644
index 00000000..b4970a28
Binary files /dev/null and b/bin/skin/duidemo/menu/menu_bk.png differ
diff --git a/bin/skin/duidemo/menu/menu_check.png b/bin/skin/duidemo/menu/menu_check.png
new file mode 100644
index 00000000..ba2bb413
Binary files /dev/null and b/bin/skin/duidemo/menu/menu_check.png differ
diff --git a/bin/skin/duidemo/menu/menu_expand.png b/bin/skin/duidemo/menu/menu_expand.png
new file mode 100644
index 00000000..4152c00c
Binary files /dev/null and b/bin/skin/duidemo/menu/menu_expand.png differ