當前位置:首頁 » 風景景觀 » mfc對話框背景色

mfc對話框背景色

發布時間: 2021-03-12 20:09:22

A. MFC 窗口背景顏色的困惑

SetBkColor並不是修改對話框背景色的。
你可以在WM_CTLCOLOR消息函數中:
static HBRUSH br = CreateSolidBrush(RGB(0,0,255));
return br;

B. 在MFC中怎樣修改對話框背景和靜態文本顏色的設置

在生成的類中添加重載的虛函數OnCtlColor(CDC
*pDC,CWnd *pWnd,UINT nCtlColor)。

可以在該函數中設置pDC->SetBkMode(TRANSPARENT);將文本的背景設置為透明。

可以在該函數中設置pDC->SetTextColor(RGB(255,0,0));將文本的顏色設置為紅色。

也可以指定某一靜態文本的字體顏色,可以加如下判斷:

switch(pWnd->GetDlgCtrlID())

{

case IDC_INFO:

pDC->SetBkMode(TRANSPARENT);

pDC->SetTextColor(RGB(255,0,0));

}

這個判斷,可以僅僅將ID號為IDC_INFO的靜態文本的字體顏色設置為紅色。

C. VC中對話框背景顏色設置

1.怎麼設置非用戶區的顏色?
在需要設置的對話框類中添加WM_CTLCOLOR消息響應,然後在這個函數中return那裡注釋掉默認的,return你的話刷就可以了!
2.如果設置用戶區為不同顏色,比如有兩個picture控制項,一個的背景設置成紅色,另一個設置成綠色。
OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
這個函數中有個CWnd類型的指針,用這個指針調用GetDlgCtrlID()函數和當前控制項ID做比較!
例子如下:

HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here

// TODO: Return a different brush if the default is not desired
if(pWnd->GetDlgCtrlID()==IDC_STATIC)
{
return m_mybrush;
}
return m_brush;
// return hbr;
}

3.如果我只在對話框中load一個bitmap,但是這個bitmap沒有占完整個用戶區,怎麼顯示這個bitmap,而非用戶區和其他的用戶區則隱藏?
有兩種方法!
第一就是定義一個Rect在裡面填充
或者還是在
OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
函數中返回當前需要的點陣圖!
可以現定義一個點陣圖的對象和話刷的對象
CBitmap m_bitmap;
CBrush m_Cbrush;
先m_bitmap.LoadBitmap(IDB_BITMAP1);
然後用m_Cbrush創建一個點陣圖話刷
m_Cbrush.CreatePatternBrush(&m_bitmap);//需要的是一個點陣圖指針!
然後在對話框上面畫一個picture控制項
用前面說的GetDlgCtrlID()函數給這個picture控制項填充顏色就可以了!

D. MFC下,怎麼改變對話框 局部 背景顏色

背景圖片無關模態非模態。 對話框背景,一般推薦在OnEreaseBkgnd裡面做,做好CBrush brush(&bitmap);刷子之後,直接給背景畫刷就可以了。

E. MFC如何設置對話框靜態文字背景以及文字顏色

很簡單。。對大家有用的贊個啊。。。。
1,新建基於對話框的mfc程序。
添加一個static標簽控制項,ID為:IDC_STATIC_DEMO
在CXXXDlg類中添加一個類型為CBrush的成員變數m_brs;
m_brs.CreateSolidBrush(RGB(0,0,55));//需要程序使用的背景畫刷

並且在CXXXDlg的構造函數中添加一行代碼
在CXXXDlg中添加WM_CTLCOLOR消息處理函數
然後在OnCtlColor中寫下面的代碼:
if(IDC_STATIC_DEMO==pWnd->GetDlgCtrlID())//判斷正在繪制的是不是我們需要改變的控制項
{
pDC->SetBkMode(TRANSPARENT);//設置透明輸出
pDC->SetTextColor(RGB(255,0,0));//設置文字顏色
return m_brs;//用自定義的畫刷去繪制背景
}
這樣。。。就OK了。。
親,給點分吧,這年頭,不容易啊。。。別忘了哦。。。

PS:如果要該按鈕的,需要添加DrawItem這個虛函數去搞定。。。。

F. mfc窗口的背景色填充

繪圖的時候將偏移量考慮進去啊
比如在MM_TEXT模式下
CRect
mrect;
GetClientRect(&mrect);
pDC->SetViewportOrg(50,50);
pDC->FillSolidRect(mrect.left-50,mrect.top-50,mrect.Width(),mrect.Height(),RGB(255,0,0));

G. MFC GetSysColor獲取對話框背景顏色

轉換後復是C0C0C0,一制個灰色。

代碼中,使用:

COLORREFdd=GetSysColor(COLOR_3DFACE);
BYTEr=GetRValue(dd);
BYTEg=GetGValue(dd);
BYTEb=GetBValue(dd);

H. MFC改變模態對話框的背景顏色,添加背景圖片

你定向求助了兩次,那邊的另一位朋友的回答基本正確。
背景圖片無關模態非模態。
對話框背景,一般推薦在OnEreaseBkgnd裡面做,做好CBrush brush(&bitmap);刷子之後,直接給背景畫刷就可以了。

如果在OnPaint裡面做,也是可以的,一般推薦用內存DC做雙緩存,將bitmap點陣圖SelectObject放到一個memDC裡面,通過BitBlt或StretchBlt貼圖,方便控制效果。當然你的代碼也行,只是效率稍微有些低,注意之後將brush釋放出來,否則會有內存資源泄漏。

I. MFC如何取得默認對話框的背景顏色

對話框是從CWnd派生,CWnd的方法CWnd::GetDC(),可以返回CDC(設備環境)的指針,然後調用CDC::GetBkColor()可以獲取背景的RGB顏色

熱點內容
一部國外電影,一個老男人騎個摩托車 發布:2024-08-19 09:13:10 瀏覽:920
脖子上有睾丸是什麼電影 發布:2024-08-19 09:03:17 瀏覽:374
變形金剛撒誰家的 發布:2024-08-19 08:43:06 瀏覽:478
美國男電影雙胞胎 發布:2024-08-19 08:42:20 瀏覽:764
黑人橄欖球少年收養電影 發布:2024-08-19 08:25:26 瀏覽:918
夏目哉大片 發布:2024-08-19 08:09:22 瀏覽:806
他第一部出演的電視劇是,的英語 發布:2024-08-19 08:07:54 瀏覽:654
電影檢索 發布:2024-08-19 07:48:52 瀏覽:198
誰有視頻 發布:2024-08-19 07:41:55 瀏覽:141
成龍香港鬼片電影大全 發布:2024-08-19 07:39:46 瀏覽:223