1. 程式人生 > >關於MFC重繪標題欄和其他設定位置的解決方案

關於MFC重繪標題欄和其他設定位置的解決方案

背景:對話方塊無邊框,需要在固定的位置進行重繪。

落實步驟:

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);

以上只是部分程式碼,基本上設定完成後就可以看到重繪的位置。