要改變對話方塊的一般顏色,可以在c
***0
,255
,255
),rgb(
255,0,
0));
//背景青藍、文字紅色
但是這樣不能改變對話方塊中的圖形控制項的顏色;
每個控制項在dialog中都是乙個視窗,當要繪製控制項時,會發出乙個wm_ctlcolor訊息給它的父視窗(對話方塊本身).訊息對映及響應函式如下:
on_wm_crlcolor() //反映wm_ctlcolor訊息
afx_msg hbrush cwnd::oncrlcolor(cdc* pdc,cwnd* pwnd,uint nctlcolor);
//nctlcolor型別:
ctlcolor_dlg對話方塊本身,不含有所有的控制項
ctlcolor_static 所有包含static text控制項的設定(也包括無效的edit box、combo box的eidt box)
ctlcolor_edit edit box與combo box的eidt box部分
ctlcolor_list list box與combo box的edit box部分
ctlcolor_scrollbar scroll bar的空白區
我們也可以單獨改變某乙個控制項的顏色.onctrlcolor函式的pwnd成員變數是各控制項的視窗指標,以pwnd->getdlgctrlid()可以獲得呼叫此函式的控制項id,將它與已知id比較,就可以改變這個控制項的顏色。另外乙個作法是比較pwnd;例如:如果乙個edit box控制項的成員變數m_edit1被宣告為cedit類,那麼把m_edit1.m_hwnd與pwnd->m_hwnd比較,也可以知道是哪個控制項.
下面是乙個例子:
hbrush c
***dlg::onctlcolor(cdc
*pdc, cwnd
*pwnd, uint nctlcolor)
cbrush m_cbrush;
m_cbrush.createsolidbrush(rgb(0,
255,
255));
switch
(nctlcolor)
deleteobject(m_cbrush);
//todo: return a different brush if the default is not desired
return
hbr;}
對話方塊控制項
單選對話方塊 newalertdialog.builder this settitle 請做出你的選擇 seticon r.mipmap.ic launcher setpositivebutton 確認 null setnegativebutton 取消 null setsinglechoiceit...
Qt之標準對話方塊 顏色對話方塊
1 在標頭檔案中包含 include qcolordialog void widget on colorbutton clicked 這裡使用了qcolordialog的靜態函式getcolor 來獲取顏色,它的三個引數的作用分別是 設定初始顏色 指定父視窗和設定對話方塊標題。getcolor 函式...
改變對話方塊顏色
2008 06 26 23 06 11 分類 技術積累篇 標籤 字型大小 大中小訂閱 其中函式的第乙個引數指定了背景顏色,第二個引數指定了文字顏色。下面的例子是將應用程式對話方塊設定為藍色背景和紅色文字,步驟如下 編譯並執行,此時對話方塊的背景色和文本色已發生了改變。值得注意的 是 在呼叫domod...