繪制:
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個像素,這是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++;
}
接下來就是處理消息循環(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é)果是頻繁的重繪。另外,每次要重新繪制的時候并不是調(diào)用Invalidate,而是另外添加個函數(shù),只會上面的部分,下部分沒必要重繪�! ×硗庖幚矸较蜴I拖動拖拉條。
相關(guān)推薦:
C++考試輔導(dǎo):內(nèi)存分配的五種方法的區(qū)別 2009年c++二級等考輔導(dǎo):char*和char[]的區(qū)別