關於MFC重繪標題欄和其他設定位置的解決方案
阿新 • • 發佈:2018-12-12
背景:對話方塊無邊框,需要在固定的位置進行重繪。
落實步驟:
1、自定義重繪類;
2、呼叫重繪類;
3、獲取並處理需要重繪的區域。
重繪類的程式碼如下:
宣告
CBackgroundUtil m_BKShow;
在建構函式中初始化
m_BKShow.SetBitmap(IDB_BMP_BK); //介面擡頭,圖片自己載入
在BOOL CXXXDlg::OnEraseBkgnd(CDC* pDC)中確認重繪位置
CRect rcDraw; CRect rectClient; GetClientRect(&rectClient); CRect rectLogo; m_staicLOGO.GetWindowRect(&rectLogo); ScreenToClient(&rectLogo); rcDraw.left = rectLogo.right; rcDraw.top = rectLogo.top; rcDraw.bottom = rectLogo.bottom; rcDraw.right = rectClient.right; m_BKShow.DrawBkStretchBitmap(pDC,rcDraw);
以上只是部分程式碼,基本上設定完成後就可以看到重繪的位置。