bool invalidaterect(
__in hwnd hwnd,
__in const rect *lprect,
__in bool berase
);//該函式呼叫後會產生 wm_paint訊息
hwnd 哪個視窗要更新 為null表示所有視窗(不僅僅是本程式視窗) 不推薦設成null
lprect 要更新的矩形區域
berase 如果是true 表示beginpaint函式呼叫時lprect所指的區域被擦除 否則不擦除
案例說明: 客戶區有一方框rect(0,0,100,100) 單擊在方框裡畫一對角線 再單擊消失 再單擊又出現
static bool bflag;//bflag是1時顯示 0時消失
case wm_lbuttondown:
bflag ^= 1;
invalidaterect(hwnd, &rect, false);//究竟應該true 還是false呢
return 0;
case wm_paint :
hdc = beginpaint( hwnd,&ps);
hbrush = getstockobject( gray_brush);
selectobject( hbrush);
setrect(&rect, 0, 0, 100, 100);//畫矩形 僅僅 邊框不填充內部
framerect(hdc, &rect, hbrush);
//rectangle( hdc, 0, 0, 100, 100);//邊框 且 填充內部
if(bflag)
lineto(100,100);
endpaint(hwnd,&ps);
return 0 ;
現象:invalidaterect函式 berase=false時 用framerect對角線出現後再次單擊 對角線不消失
berase=true時 用framerect對角線出現後再次單擊 對角線消失
berase=false時 用rectangle對角線出現後再次單擊 對角線消失
berase=true時 用rectangle對角線出現後再次單擊 對角線消失
分析:berase=false時 不擦除lprect所指區域 wm_paint中已經不畫對角線 而framerect只畫邊框內部不填充 所以對角線仍然存在(是上次畫的)
berase=false時 不擦除lprect所指區域 雖然wm_paint中已經不畫對角線rectangle會填充內部 所以對角線消失了
dropout理解 簡易理解
所謂的dropout,從字面意思理解,就是 拋棄 拋棄什麼呢?拋棄的是網路中隱藏層的節點 輸入層和輸出層是由資料型別和問題型別決定的,當然不能動啦!怎麼拋棄呢?dropout有乙個引數p,p的取值介於0和1,含義是每個節點有p概率被拋棄。被拋棄對這個節點有什麼影響呢?dropout對於節點的影響表現...
怎麼理解ESB(純屬個人理解)
背景,隨著公司系統越來越多,系統之間的互動也越來越多,如果服務之家沒有相應的管理支撐的話,將會出現各種點對點,混亂不堪,對於服務之間的解決方案有很多種,這裡介紹下,目前公司用到的,基於soa思想的esb,企業服務匯流排。esb 同步過程可以理解為中介或者 類似 非同步可以理解為快取資料庫,所有客戶端...
MapReduce理解 深入理解MapReduce
化簡 reducing 遍歷集合中的元素來返回乙個綜合的結果。即,輸出表單裡一列數字的和這個任務屬於reducing。input,資料讀入 123456 設定資料輸入 fileinputformat.setinputpaths job,args 0 fileinputformat.setinputd...