MFC對話框拖動時,刷子OnCtlColor報錯。

描述:
MFC。我寫了個設置對話框背景顏色的一段代碼,運行後,在拖動對話框的過程中,改變顏色的這段代碼出現了報錯(HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);)。一直沒找到問題的原因,請教下網上的大神。下面附上代碼和截圖;
拖動過程中的報錯報錯的代碼行

//背景顏色
HBRUSH CisionDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
m_Brush.Back.CreateSolidBrush(RGB(203, 228, 253)); // 創建一把背景刷子
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO:  在此更改 DC 的任何特性
//if (pWnd->GetDlgCtrlID() == IDD_JUPITERVISION_DIALOG)
if (nCtlColor == CTLCOLOR_DLG)
{
	return m_Brush.Back;
	//pDC->SetBkColor(RGB(255,0,0));
	//pDC->SetBkMode(TRANSPARENT);
}

////設置透明色
//::SetWindowLong(m_hWnd, GWL_EXSTYLE, GetWindowLong(m_hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);
//::SetLayeredWindowAttributes(m_hWnd, 0, 120, LWA_ALPHA); // 120是透明度,範圍是0~255 

// TODO:  如果默認的不是所需畫筆,則返回另一個畫筆
return hbr;

}

發佈了3 篇原創文章 · 獲贊 2 · 訪問量 481
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章