在主視窗內通過這個可以改變OnCtlColor,那么如何在另外一個類呼叫方法改變他的顏色?
uj5u.com熱心網友回復:
另外一個類中獲得主視窗指標,然后呼叫主視窗下的函式uj5u.com熱心網友回復:
呼叫這個函式,不起作用,這個函式好像初始化時執行的,有沒有其他可以模擬信號變化的放法,圓點紅綠色變化
uj5u.com熱心網友回復:
OnCtlColor 是發給主視窗 的 訊息 !uj5u.com熱心網友回復:
先置好想要的狀態Invalidate InvalidateRect 等引發控制元件視窗的重繪
uj5u.com熱心網友回復:
顏色要一直動態變,只有一直重繪表單的方法嗎
uj5u.com熱心網友回復:
OnCtlColor是由框架來呼叫(詢問)采用什么顏色,可以通過動態回傳不同的值來改變子控制元件顏色。所以你不應該嘗試去“呼叫”它,而應該給予它不同的回傳值來間接繪制不同的顏色。
uj5u.com熱心網友回復:
定時器 + static重繪uj5u.com熱心網友回復:
其他的類回傳不同值,改變不同顏色,怎么傳給這個函式改變?uj5u.com熱心網友回復:
這個不行,我基本一秒變四五次,不太實用,會閃爍
uj5u.com熱心網友回復:
不能用事件觸發嗎?我的頻率比較高
uj5u.com熱心網友回復:
要避免閃爍就雙緩沖
uj5u.com熱心網友回復:
先置好想要的狀態
Invalidate InvalidateRect 等引發控制元件視窗的重繪
這個不行,我基本一秒變四五次,不太實用,會閃爍
要避免閃爍就雙緩沖
有沒有簡單的,像c#中不就可以直接改變顏色
uj5u.com熱心網友回復:
一秒變四五次后 Invalidate 控制元件uj5u.com熱心網友回復:
從CStatic派生新類,形成具有可以改變字體、背景顏色 和字體顏色的控制元件類uj5u.com熱心網友回復:
SendMessage
uj5u.com熱心網友回復:
一秒變四五次后 Invalidate 控制元件
1秒4~5次,200ms/次,定時器夠用了
uj5u.com熱心網友回復:
先置好想要的狀態
Invalidate InvalidateRect 等引發控制元件視窗的重繪
這個不行,我基本一秒變四五次,不太實用,會閃爍
要避免閃爍就雙緩沖
有沒有簡單的,像c#中不就可以直接改變顏色
c#是寶馬車, mfc是牛車,不能比
樓主要弄的,花點費用,可以幫你弄
uj5u.com熱心網友回復:
建議類里面呼叫static text 的 invalidate , 同時OnCtlColor 中 呼叫類的RGB值; postmessage/ sendmessage 發送WM_CTLCOLOR , 我沒用成功,找了資料也沒見成功的包括高低位uj5u.com熱心網友回復:
我用invalidate 30毫秒一重繪也沒見主視窗閃爍。晚上回去整理下代碼發出來。uj5u.com熱心網友回復:
執行緒里執行緒里
void ChangeColorFunction::ChangeColor()
{
if (MainDlg == NULL)
return;
RandColor();
CWnd *cwnd = CWnd::FromHandle(GetDlgItem(MainDlg, StaticID));
cwnd->Invalidate(1);
}
void ChangeColorFunction::RandColor()
{
colorChange = RGB(rand() % 256, rand() % 256, rand() % 256);
}
視窗內
void CStaticTestDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加訊息處理程式代碼和/或呼叫默認值
if (nIDEvent == 1)
{
changeFunction->ChangeColor();
}
CDialogEx::OnTimer(nIDEvent);
}
HBRUSH CStaticTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何特性
if (pWnd->GetDlgCtrlID())
{
//pDC->SetBkColor(changeFunction->colorChange);//背景色為綠色
pDC->SetTextColor(changeFunction->colorChange);//文字為紅色
}
// TODO: 如果默認的不是所需畫筆,則回傳另一個畫筆
return hbr;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/8967.html
標籤:界面
下一篇:求分享Measurement Studio 2011 Visual C++ MFC Legacy Support 解壓密碼
