Repainting of dialog box takes time.
-
yes i add this in all *.cpp
'Test.exe': Loaded 'C:\Windows\System32\ntdll.dll'
'Test.exe': Loaded 'C:\Windows\System32\kernel32.dll'
'Test.exe': Loaded 'C:\Windows\System32\user32.dll'
'Test.exe': Loaded 'C:\Windows\System32\gdi32.dll'
'Test.exe': Loaded 'C:\Windows\System32\advapi32.dll'
'Test.exe': Loaded 'C:\Windows\System32\rpcrt4.dll'
'Test.exe': Loaded 'C:\Windows\System32\msimg32.dll'
'Test.exe': Loaded 'C:\Windows\System32\comdlg32.dll'
'Test.exe': Loaded 'C:\Windows\System32\msvcrt.dll'
'Test.exe': Loaded 'C:\Windows\System32\shlwapi.dll'
'Test.exe': Loaded 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6002.18005_none_5cb72f96088b0de0\comctl32.dll'
'Test.exe': Loaded 'C:\Windows\System32\shell32.dll'
'Test.exe': Loaded 'C:\Windows\System32\winspool.drv'
'Test.exe': Loaded 'C:\Windows\System32\oledlg.dll'
'Test.exe': Loaded 'C:\Windows\System32\ole32.dll'
'Test.exe': Loaded 'C:\Windows\System32\oleaut32.dll'
'Test.exe': Loaded 'C:\Windows\System32\winmm.dll'
'Test.exe': Loaded 'C:\Windows\System32\oleacc.dll'
'Test.exe': Loaded 'C:\Windows\System32\imm32.dll'
'Test.exe': Loaded 'C:\Windows\System32\msctf.dll'
'Test.exe': Loaded 'C:\Windows\winsxs\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.0.6002.18005_none_9e50b396ca17ae07\GdiPlus.dll'
'Test.exe': Loaded 'C:\Windows\System32\lpk.dll'
'Test.exe': Loaded 'C:\Windows\System32\usp10.dll'
'Test.exe': Loaded 'C:\Windows\System32\uxtheme.dll'
'Test.exe': Loaded 'C:\Windows\System32\dwmapi.dll'
'Test.exe': Unloaded 'C:\Windows\System32\dwmapi.dll'
Detected memory leaks!
Dumping objects ->
{235} normal block at 0x00286728, 145 bytes long.
Data: < % d > C0 25 C9 01 64 00 00 00 80 00 00 00 01 00 00 00
{227} normal block at 0x002866D8, 20 bytes long.
Data: < % > C0 25 C9 01 03 00 00 00 03 00 00 00 01 00 00 00
{226} normal block at 0x00286640, 85 bytes long.
Data: < % D D > C0 25 C9 01 44 00 00 00 44 00 00 00 01 00 00 00
{225} normal block at 0x00286598, 103 bytes long.
Data: < % V V > C0 25 C9 01 56 00 00 00 56 00 00 00 01 00 00 00
Object dump complete.
The program '[3536] Test.exe: Native' has exited with code 0 (0x0).- Try to create, select and delete your background pen outside the drawing loop. 2) Could you post your *.cpp here ? :)
Check your definition of Irrationality[^] :) 1 - Avicenna 5 - Hubbard 3 - Own definition
-
- Try to create, select and delete your background pen outside the drawing loop. 2) Could you post your *.cpp here ? :)
Check your definition of Irrationality[^] :) 1 - Avicenna 5 - Hubbard 3 - Own definition
-
i use this for color
CBrush m_brush;
m_brush.CreateSolidBrush(RGB(241,244,250));//in OnInitDialogHBRUSH CTest::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);switch (nCtlColor) { case CTLCOLOR\_EDIT: pDC->SetTextColor(RGB(0,0,0)); pDC->SetBkColor(RGB(255,255,255)); return hbr; case CTLCOLOR\_STATIC: LOGBRUSH logbrush; m\_brush.GetLogBrush( &logbrush ); pDC->SetTextColor(RGB(0,0,0)); pDC->SetBkColor(logbrush.lbColor); return m\_brush; case CTLCOLOR\_BTN: case CTLCOLOR\_MSGBOX: case CTLCOLOR\_DLG: return m\_brush; default: return m\_brush; }
}
BOOL CTest::OnEraseBkgnd(CDC *pDC)
{
CPen myPen,hpenOld;
CRect rect;
GetClientRect(&rect);
for(int i=0;i<rect.bottom;)
{ myPen.CreatePen(PS_SOLID,1,RGB(241,244,250));
pDC->SelectObject(&myPen);
pDC->MoveTo(0,i);
pDC->LineTo(rect.right,i);
i++;
myPen.DeleteObject();
}
return 1
}Le@rner wrote:
BOOL CTest::OnEraseBkgnd(CDC *pDC) { CPen myPen,hpenOld; CRect rect; GetClientRect(&rect); for(int i=0;iSelectObject(&myPen); pDC->MoveTo(0,i); pDC->LineTo(rect.right,i); i++; myPen.DeleteObject(); } return 1 }
Actually you are filling dialog with RGB(241,244,250) color. Change the OnEraseBkgnd
BOOL CTest::OnEraseBkgnd(CDC *pDC)
{
CRect rect;
GetClientRect(&rect);
pDC->FillSolidRect(rect,RGB(241,244,250));
return TRUE;
}to avoid for loop, unnecessary creation and destroying of pen,and filling dialog background color using LineTo and MoveTo functions. This one can make you drawing bit faster.
modified on Tuesday, March 9, 2010 8:00 AM
-
Le@rner wrote:
BOOL CTest::OnEraseBkgnd(CDC *pDC) { CPen myPen,hpenOld; CRect rect; GetClientRect(&rect); for(int i=0;iSelectObject(&myPen); pDC->MoveTo(0,i); pDC->LineTo(rect.right,i); i++; myPen.DeleteObject(); } return 1 }
Actually you are filling dialog with RGB(241,244,250) color. Change the OnEraseBkgnd
BOOL CTest::OnEraseBkgnd(CDC *pDC)
{
CRect rect;
GetClientRect(&rect);
pDC->FillSolidRect(rect,RGB(241,244,250));
return TRUE;
}to avoid for loop, unnecessary creation and destroying of pen,and filling dialog background color using LineTo and MoveTo functions. This one can make you drawing bit faster.
modified on Tuesday, March 9, 2010 8:00 AM