http://www.vckbase.net/code/winview/advui/bardemo.zip
濡備笂浠g爜,鍦ㄨ繍琛岀▼搴忕殑鏃跺€?鐢ㄩ紶鏍囨嫋鍔ㄥ乏杈圭獥鍙?浼氶棯鍔?鎬庝箞瑙e喅杩欎釜闂?
鎴戞墠鐢ㄤ簡濡備笅鏂规硶BOOL CVCKBASEDlg/*(CMyDlg)*//*CCoolTabCtrl*/::OnEraseBkgnd(CDC* pDC){
return TURE;//CDialog::OnEraseBkgnd(pDC);}
,鏁堟灉鏄湁涓€鐐?浣嗘槸娌℃湁鎿︽帀鑳屾櫙,浼氬嚭鐜板墠鍚庝袱甯х獥鍙e彔鍔犵幇璞?鐒惰€屾垜浣跨敤浜嗘摝鎸囧畾鐨勫尯鍩?
HWND hWnd=this->m_hWnd;//GetDlgItem(IDC_ALLMAPVIEW)->GetSafeHwnd();
Graphics graphis(hWnd);
SolidBrush brush(GetSysColor(COLOR_3DFACE));
CRect SampleRect;
::GetClientRect(hWnd,&SampleRect);
graphis.FillRectangle(&brush,SampleRect.left,SampleRect.top,SampleRect.Width( ),SampleRect.bottom);
娌℃湁寰楀埌鐞嗘兂鐨勬晥鏋?璇锋眰楂樻墜鎸囩偣.璋㈣阿!
濡備笂浠g爜,鍦ㄨ繍琛岀▼搴忕殑鏃跺€?鐢ㄩ紶鏍囨嫋鍔ㄥ乏杈圭獥鍙?浼氶棯鍔?鎬庝箞瑙e喅杩欎釜闂?
鎴戞墠鐢ㄤ簡濡備笅鏂规硶BOOL CVCKBASEDlg/*(CMyDlg)*//*CCoolTabCtrl*/::OnEraseBkgnd(CDC* pDC){
return TURE;//CDialog::OnEraseBkgnd(pDC);}
,鏁堟灉鏄湁涓€鐐?浣嗘槸娌℃湁鎿︽帀鑳屾櫙,浼氬嚭鐜板墠鍚庝袱甯х獥鍙e彔鍔犵幇璞?鐒惰€屾垜浣跨敤浜嗘摝鎸囧畾鐨勫尯鍩?
HWND hWnd=this->m_hWnd;//GetDlgItem(IDC_ALLMAPVIEW)->GetSafeHwnd();
Graphics graphis(hWnd);
SolidBrush brush(GetSysColor(COLOR_3DFACE));
CRect SampleRect;
::GetClientRect(hWnd,&SampleRect);
graphis.FillRectangle(&brush,SampleRect.left,SampleRect.top,SampleRect.Width( ),SampleRect.bottom);
娌℃湁寰楀埌鐞嗘兂鐨勬晥鏋?璇锋眰楂樻墜鎸囩偣.璋㈣阿!
上面代码,怎样解决窗口不闪动问题?当我运行程序是拖动左边的窗口,会出现闪动现象,我才用了BOOL CVCKBASEDlg/*(CMyDlg)*//*CCoolTabCtrl*/::OnEraseBkgnd(CDC* pDC){
return TURE;//CDialog::OnEraseBkgnd(pDC);}
但是出现前后两帧窗口叠加的现象.我又采用了下方法,指定区域刷背景
HWND hWnd=this->m_hWnd;//GetDlgItem(IDC_ALLMAPVIEW)->GetSafeHwnd();
Graphics graphis(hWnd);
SolidBrush brush(GetSysColor(COLOR_3DFACE));
CRect SampleRect;
::GetClientRect(hWnd,&SampleRect);
graphis.FillRectangle(&brush,SampleRect.left,SampleRect.top,SampleRect.Width( ),SampleRect.bottom);
还是没有得到理想的效果.请求高手帮忙,谢谢!