|
first i thank you for your interest but this two lines dosn't solve the problem that after i add them in the postion that you determine :
filename: gridctrl.cpp
line number: 1646 where draws non-fixed cells
but the lines dosn't appear ?
i have solved it but with complicated technique but it very long so if you want to take alook for this solution send me mail on (m_abosafia@hotmail.com)
so if you can solve it by your method please send me also>>>>>
mahmoud
abosafia
|
|
|
|
|
First i would thank you for your merge that i was need it very much in my project but some problems still i have :-
1- after merging Cells ,then if i click LeftButton of mouse on any postion in this merged area ,the cell border of this clicked postion will be showed but after remove the mouse the border will disappear and the value of this cell, so merging has no meaning since users still see the original cells if they click by mouse on any postion.
2-when the focus in this merged area ,if I want to move to other cell that outside this merged area ,by left,right,up,or down keys it require to press the key(down for example)more than on times
example: if i merge cells (5,4),(5,5),(5,6),and(5,7) so after merge if focus in this merged area ,and i want to move to cell (5,8),it will require press the right button (four times)
so please help me to continue my work
|
|
|
|
|
Did you find answers? I have problems when moving into a merged row via a cursor key and it renders the cell..
|
|
|
|
|
When the year value of Date Time Picker Control is modified from 2003 to more than 2038, there is a big bug. It cannot work well. Why?
hi, I'm Janeyre
|
|
|
|
|
Thank U! Your advice is very helpful.
But I fix this bug after I change all "CTime" class to "COleDateTime" class. Because the Date Time Picker Control has two function about GetTime():
1: GetTime(CTime...)
2: GetTime(COleDateTime...)
first function calls mktime() which cannot return right value when the input date exceeds the "limit" date definition in the regional settings in the control panel of PC. It's the problem of the bug.
while the second function can work well.
|
|
|
|
|
Why did you choose to make your changes stright into Chris' code?
What should we do when Chris posts an update of his original control?
Wouldn't it be better to implement the new features in derived classes?
|
|
|
|
|
Does anyone try to merge cells in virtual mode? The result is fine...
|
|
|
|
|
There is a compiler error at unicode:
OnGetText has a wrong type cast for lstrcpyn. Here is the fix:
LRESULT CCheckComboBox::OnGetText(WPARAM wParam, LPARAM lParam)
{
// Make sure the text is updated
RecalcText();
if (lParam == 0)
return 0;
// Copy the 'fake' window text
lstrcpyn((LPTSTR)lParam, m_strText, (INT)wParam);
return m_strText.GetLength();
}
|
|
|
|
|
I've fixed the bug that I've reported earlier (with merging in the corner).
Top-left fixed cells are processed separately in CGridCtrl::OnDraw function,
so you should add the same code for the fourh time to repaint them correctly:
// draw top-left cells 0..m_nFixedRows-1, 0..m_nFixedCols-1
rect.bottom = -1;
for (row = 0; row < m_nFixedRows; row++)
{
if (GetRowHeight(row) <= 0) continue;
rect.top = rect.bottom+1;
rect.bottom = rect.top + GetRowHeight(row)-1;
rect.right = -1;
for (col = 0; col < m_nFixedCols; col++)
{
if (GetColumnWidth(col) <= 0) continue;
rect.left = rect.right+1;
rect.right = rect.left + GetColumnWidth(col)-1;
pCell = GetCell(row, col);
/* if (pCell)
{
pCell->SetCoords(row,col);
pCell->Draw(pDC, row, col, rect, FALSE);
}*/
if (pCell)
{
//Used for merge cells by Huang Wei
//bugfix by Luther Bruck
if(!pCell->IsMerged())
{
if(!pCell->IsMergeWithOthers())
{
pCell->SetCoords(row,col);
pCell->Draw(pDC, row, col, rect, FALSE);
}
else
{
CGridCellBase* pMergedCell=GetCell(pCell->GetMergeCellID());
CRect mergerect=rect;
if(GetCellRangeRect(pMergedCell->m_MergeRange,&mergerect))
{
mergerect.DeflateRect(0,0,1,1);
pMergedCell->SetCoords(pCell->GetMergeCellID().row,pCell->GetMergeCellID().col);
pMergedCell->Draw(pDC, pCell->GetMergeCellID().row,pCell->GetMergeCellID().col, mergerect, TRUE);
}
}
}
else
{
CRect mergerect=rect;
if(GetCellRangeRect(pCell->m_MergeRange,&mergerect))
{
mergerect.DeflateRect(0,0,1,1);
pCell->SetCoords(row,col);
pCell->Draw(pDC, row, col, mergerect, TRUE);
}
}
}
}
Huang, could you add this code to future versions of MergeCells?
|
|
|
|
|
I've added your code ,thank you
|
|
|
|
|
There is still a bug at merged top left corner cells. Try the demo: scroll a little bit to the right and enlarge or make the column width smaller => top left cell is empty and stays empty until the cell is clicked
|
|
|
|
|
Huang, thanks a lot, your "merge cells" works fine,
but there's a one (I hope the last one) bug left.
When you have both fixed columns and fixed rows,
merging in the corner of fixed area does not work.
For example, when we have one fixed column and two
fixed rows, MergeCells(0,0,1,0) does not merge
anything. Is it possible to fix this incorrect
functionality?
|
|
|
|
|
Firstly, thanks a lot for your great work.
Merging cell(0,0) with cell(0,1) (using m_Grid.MergeCells(0,0,0,1);) does not display correctly.
There is still a vertical line between the two cells.
Some small remarks:
- Merged cells in fixed rows or columns seems to be displayed with slightly different sizes than non merged cells.
- Clicking on horizontally merged, fixed cells in the upper row, select only the leftmost column of the merged cells, I think it should select all the columns. (clicking on cell(0,0) behaves this way). The same applies for vertically merged cells in the leftmost column.
|
|
|
|
|
There's a problem in your otherwise great addition to GridCtrl.
Let's suppose we have two fixed rows and two columns, two cells
in the upper row are merged.
When mouse cursor is over the right part of the upper (merged) cell,
it changes its form and turns into a cursor for column resizing.
Also, when you are trying to resize the column by dragging the right
border of the upper (merged) cell by mouse, the results are unpredictable.
Often the column grows larger when you want to make it smaller.
Is there any way to fix it?
|
|
|
|
|
I see, and will fixed it soon.
Thanks for interesting.
|
|
|
|
|
|
Thanks a lot, it really works.
But now there's the same problem with multi-COLUMN fixed cells
(cursor doesn't change it's form).
Could you fix it if it's possible?
|
|
|
|
|
I've fixed the bug. thanks
|
|
|
|
|
Thanks so much for your jobs.
|
|
|
|
|
i can't find an instrument used in printing merged cells
|
|
|
|
|
open GridViewDemo.sln in gridctrl_in_view
|
|
|
|
|
i mean that Merged cells cna be printed when the grid is printing
|
|
|
|
|
Could you make the Merge Cell support the Mult-Lines?
|
|
|
|
|
Mult-Lines support is beyond the scope of this article,you should ask Chris to add this function
|
|
|
|
|
When mouse in the cell named by "Column2", the arrow becomes into left-right arrow, and can be modify the width of the son-Column(I don't know it how to be called).
|
|
|
|
|