點擊更換背景按鈕,彈出一個對話框,想點擊“土耳其藍”改變背景,怎么處理,初學者不會做,求大佬指導.



uj5u.com熱心網友回復:
把 FRAM_BK_COLOR 宏定義修改為 COLORREF 變數, 在點擊土耳其藍按鈕時,修改這個全域變數 并RedrawWindow(注意視窗指標/句柄),更簡單些, 對話框添加一個COLORREF變數, 在點擊更改背景時彈出 CColorDialog 對話框,可以自己選擇顏色, OK后重繪一下就好了
uj5u.com熱心網友回復:
SetDialogBkColor(RGB(255,255,255),RGB(0,0,0));uj5u.com熱心網友回復:
你那個有背景按鈕的對話框是主視窗嗎?你彈出的子視窗點擊土耳其藍按鈕以后發個自定義訊息給主視窗即可。AfxGetMainWnd()->PostMessage/SendMessage(。。。);uj5u.com熱心網友回復:
為什么不用系統做好的顏色對話框呢~CColorDialog
uj5u.com熱心網友回復:
你要給哪個對話框改背景,如果是主對話框,沒有必要彈出子對話框,如果是子對話框,直接繪制它的背景就好、uj5u.com熱心網友回復:
白色的文本框記得在OnCtlColor 中做一下背景透明,看起來好丑
HBRUSH CFinishWellToFind::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if( pWnd->GetDlgCtrlID()==控制元件ID)
{
pDC->SetBkMode(TRANSPARENT);//設定背景模式為透明
}
return (HBRUSH)GetStockObject(NULL_BRUSH);//回傳一個慷訓刷
}
能說都被你們說了
uj5u.com熱心網友回復:
通過按鈕訊息改變顏色值,然后對主視窗invalidate一下即可轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/67071.html
標籤:基礎類
上一篇:MFC 怎么繪制坐標軸
