Ben bezig met een MFC applicatie die je zou kunnen vergelijken met Excel, een workbook met tabbladen met daarop grids (ObjectiveGrids van Stringray met doc/view architectuur).
Nu voeg ik runtime een nieuw tabblad toe maar nu verschuift het grid heel ietsjes en ik mis ook een lijntje in de tab-balk. Nu kwam ik er achter dat wanneer ik het applicatiewindow maximaliseer en weer terug breng naar zijn normale staat dat dan het probleem/verschijnsel weg is.
Alleen, hoe kan ik dit nu via code oplossen? Moet ik een redraw doen van het tabcontrol, het frame of iets anders?
Op de website van de fabrikant kwam ik iets tegen wat er wel op leek maar zodra ik dit doe hangt de hele handel:
.modbreak: code tags toegevoegd, denk hier voortaan zelf aan
Nu voeg ik runtime een nieuw tabblad toe maar nu verschuift het grid heel ietsjes en ik mis ook een lijntje in de tab-balk. Nu kwam ik er achter dat wanneer ik het applicatiewindow maximaliseer en weer terug breng naar zijn normale staat dat dan het probleem/verschijnsel weg is.
Alleen, hoe kan ik dit nu via code oplossen? Moet ik een redraw doen van het tabcontrol, het frame of iets anders?
Op de website van de fabrikant kwam ik iets tegen wat er wel op leek maar zodra ik dit doe hangt de hele handel:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| void CMyControlBar::AddTabs() { ASSERT(::IsWindow(m_wndTab)); ASSERT(::IsWindow(m_wndNew)); m_wndTab.InsertTab(&m_wndNew, 0, _T("New Tab")); m_wndTab.SetTabIcon(0, IDI_ICON1); //Now get the client rect of the tab window and use this dimension to resize the tab control CRect rectTab; m_wndTab.GetClientRect(rectTab); SECTabControlBase* pTabCtrl = (SECTabControlBase*)m_wndTab.GetTabControl(); pTabCtrl->SetWindowPos(&wndTop, rectTab.left, 0, rectTab.Width(), 0, SWP_NOREDRAW); m_wndTab.SendMessage(WM_SIZE, 0, MAKELPARAM(rectTab.Width(), rectTab.Height())); m_wndTab.Invalidate(TRUE); m_wndTab.ActivateTab(0); } |
.modbreak: code tags toegevoegd, denk hier voortaan zelf aan
[ Voor 8% gewijzigd door .oisyn op 29-12-2003 18:51 ]