繪制:
for(;i <153;i++ ){
rectangle.SetRect(i,0,i+1, m_uiStaticRHigh);
pDcR->FillSolidRect(&rectangle, RGB(i/3*5,nGpos/3*5,nBpos/3*5));
}
繪制下面的條子,灰度我從上到下共繪制26個(gè)像素,這是6段里面的第一段,其他的如法炮制:
i=0;
CRect rc;
for(int j=0;j<=36;j++){
for(int k=0;k<=25;k++){
rc.SetRect(i,k,i+1,k+1);
if(k<=12)
pDcAll->FillSolidRect(&rc,RGB(255,255-(255-j*7)*k/13,255-255*k/13));
else
pDcAll->FillSolidRect(&rc,RGB(255-255*(k-12)/13,j*7-j*7*(k-12)/13,0));
}
i++;
}
接下來(lái)就是處理消息循環(huán),處理CEdit的ON_EN_CHANGE,CSliderCtrl的NM_RELEASEDCAPTURE和 ON_WM_HSCROLL,處理下面條子的ON_WM_LBUTTONDOWN,ON_WM_MOUSEMOVE,ON_WM_LBUTTONUP。
為什么不在HSCROLL中處理鼠標(biāo)的拖拽和方向鍵拖拉呢,這樣導(dǎo)致的結(jié)果是頻繁的重繪。另外,每次要重新繪制的時(shí)候并不是調(diào)用Invalidate,而是另外添加個(gè)函數(shù),只會(huì)上面的部分,下部分沒(méi)必要重繪! ×硗庖幚矸较蜴I拖動(dòng)拖拉條。
相關(guān)推薦:C++考試輔導(dǎo):內(nèi)存分配的五種方法的區(qū)別北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |