Ik heb een RichEdit control gesubclassed om er een static control voor te plaatsen waarin regelnummers staan.
Opzich gaan de meeste dingen goed, maar de static wordt alleen maar geredrawed als ik mijn parent window resize.
Hieronder eens stukje van de msgproc van de gesubclassde control
edit: hLineNrWnd is mijn static waarop de regelnummers komen te staan.
hHexWnd is mijn RichEdit Control
hWnd is de window die aan de msgproc wordt meegegeven.
Waarom komt het dat er geen updates naar de static verstuurd worden bij een normale WM_PAINT ('idle' situatie) message en wel bij een WM_SIZE message?
Opzich gaan de meeste dingen goed, maar de static wordt alleen maar geredrawed als ik mijn parent window resize.
Hieronder eens stukje van de msgproc van de gesubclassde control
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| case WM_SIZE: GetClientRect(hWnd, &rcClient); MoveWindow(hHexWnd, rcClient.left + (nColumnWidth+1), rcClient.top, rcClient.right-(nColumnWidth+1), rcClient.bottom, TRUE); UpdateLineNumbers(hHexWnd); break; case WM_PAINT: GetClientRect(hWnd, &rcClient); MoveWindow(hHexWnd, rcClient.left + (nColumnWidth+1), rcClient.top, rcClient.right-(nColumnWidth+1), rcClient.bottom, TRUE); UpdateLineNumbers(hHexWnd); DrawLineNumbers(hLineNrWnd); break; } return CallWindowProc((WNDPROC)lpfnOldWndProc, hWnd, msg, wParam, lParam); } |
edit: hLineNrWnd is mijn static waarop de regelnummers komen te staan.
hHexWnd is mijn RichEdit Control
hWnd is de window die aan de msgproc wordt meegegeven.
Waarom komt het dat er geen updates naar de static verstuurd worden bij een normale WM_PAINT ('idle' situatie) message en wel bij een WM_SIZE message?
[ Voor 9% gewijzigd door cenix op 11-11-2004 22:43 ]