diff --git a/.gitignore b/.gitignore index 4973801..05225a3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,8 @@ -build/* -build64/* +build/ +demo/ _temp/ _bin/ temp/ bin/ .vs/ -demo/ *.lib \ No newline at end of file diff --git a/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_Win32.lib b/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_Win32.lib index 2382a3b..77e3975 100644 Binary files a/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_Win32.lib and b/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_Win32.lib differ diff --git a/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_Win32.pdb b/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_Win32.pdb index 1563542..b2f55eb 100644 Binary files a/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_Win32.pdb and b/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_Win32.pdb differ diff --git a/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_x64.lib b/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_x64.lib index da54907..aaadd33 100644 Binary files a/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_x64.lib and b/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_x64.lib differ diff --git a/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_x64.pdb b/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_x64.pdb index 71cf713..00df4e1 100644 Binary files a/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_x64.pdb and b/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Debug_x64.pdb differ diff --git a/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Release_Win32.lib b/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Release_Win32.lib index 0af0cd6..20b2626 100644 Binary files a/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Release_Win32.lib and b/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Release_Win32.lib differ diff --git a/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Release_x64.lib b/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Release_x64.lib index 8d77057..e232ec5 100644 Binary files a/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Release_x64.lib and b/demo/Adminstor/ThirdParty/EzUI/lib/EzUI_Release_x64.lib differ diff --git a/lib/EzUI_Debug_Win32.lib b/lib/EzUI_Debug_Win32.lib index 2382a3b..77e3975 100644 Binary files a/lib/EzUI_Debug_Win32.lib and b/lib/EzUI_Debug_Win32.lib differ diff --git a/lib/EzUI_Debug_Win32.pdb b/lib/EzUI_Debug_Win32.pdb index 1563542..b2f55eb 100644 Binary files a/lib/EzUI_Debug_Win32.pdb and b/lib/EzUI_Debug_Win32.pdb differ diff --git a/lib/EzUI_Debug_x64.lib b/lib/EzUI_Debug_x64.lib index da54907..aaadd33 100644 Binary files a/lib/EzUI_Debug_x64.lib and b/lib/EzUI_Debug_x64.lib differ diff --git a/lib/EzUI_Debug_x64.pdb b/lib/EzUI_Debug_x64.pdb index 71cf713..00df4e1 100644 Binary files a/lib/EzUI_Debug_x64.pdb and b/lib/EzUI_Debug_x64.pdb differ diff --git a/lib/EzUI_Release_Win32.lib b/lib/EzUI_Release_Win32.lib index 0af0cd6..20b2626 100644 Binary files a/lib/EzUI_Release_Win32.lib and b/lib/EzUI_Release_Win32.lib differ diff --git a/lib/EzUI_Release_x64.lib b/lib/EzUI_Release_x64.lib index 8d77057..e232ec5 100644 Binary files a/lib/EzUI_Release_x64.lib and b/lib/EzUI_Release_x64.lib differ diff --git a/sources/TableView.cpp b/sources/TableView.cpp index b2cc933..238c849 100644 --- a/sources/TableView.cpp +++ b/sources/TableView.cpp @@ -1,4 +1,4 @@ -#include "TableView.h" +#include "TableView.h" namespace ezui { @@ -240,6 +240,11 @@ namespace ezui { g.DrawRectangle(RectF(firstColRect)); } + int headerClipWidth = Width() - m_firstColumnWidth; + if (headerClipWidth > 0) { + g.PushAxisAlignedClip(RectF((float)m_firstColumnWidth, 0.0f, (float)headerClipWidth, (float)m_headerHeight)); + } + // 绘制数据列表头 int x = m_firstColumnWidth - m_scrollOffsetX; for (int i = 0; i < (int)m_columns.size(); ++i) { @@ -277,9 +282,14 @@ namespace ezui { x += col.Width; } + + if (headerClipWidth > 0) { + g.PopAxisAlignedClip(); + } } void TableView::DrawCells(PaintEventArgs& args) { + auto& g = args.Graphics; int startY = m_headerHeight; for (int row = 0; row < (int)m_data.size(); ++row) { @@ -295,6 +305,11 @@ namespace ezui { Rect firstColRect(0, rowY, m_firstColumnWidth, rowHeight); DrawFirstColumn(args, row, firstColRect); + int rowClipWidth = Width() - m_firstColumnWidth; + if (rowClipWidth > 0) { + g.PushAxisAlignedClip(RectF((float)m_firstColumnWidth, (float)rowY, (float)rowClipWidth, (float)rowHeight)); + } + // 绘制数据列 int x = m_firstColumnWidth - m_scrollOffsetX; for (int col = 0; col < (int)m_columns.size(); ++col) { @@ -310,6 +325,10 @@ namespace ezui { DrawCell(args, row, col, cellRect); x += colWidth; } + + if (rowClipWidth > 0) { + g.PopAxisAlignedClip(); + } } }