crecttracker是乙個很有用的類,可以通過呼叫crecttracker:: trackrubberband
響應wm_lbuttondown訊息來建立乙個橡皮區矩形。下例表明使用crecttracker移動
和重置視窗中的藍色橢圓的大小是很容易的事情。
首先,在檔案檔中宣告乙個crecttracker資料成員:
class csampleview : public cview
;其次,在文件類的建構函式中初始化crecttracker 物件:
csampledoc:: csampledoc ()
然後,在ondraw函式中畫橢圓和蹤跡矩形:
void csampleview:: ondraw (cdc* pdc)
最後,使用classwizard處理wm_lbuttondown訊息,並增加下述**。該段**
根據滑鼠擊鍵情況可以拖放、移動或者重置橢圓的大小。
void csampleview::onlbuttondown (uint nflags, cpoint point)
else
pdoc->m-tracker.trackrubberband (this,point,true);
cview:: onlbuttondown (nflags,point);
}
如何判斷乙個點在矩形內
最近在做遊戲伺服器中技能模組,往往要掃瞄乙個區域,判斷npc是不是在我這個區域內,在的話就發傷害。就需要實現一下,對於乙個點是否在矩形內的判斷。只需要判斷該點是否在上下兩條邊和左右兩條邊之間就行,判斷乙個點是否在兩條線段之間夾著,就轉化成,判斷乙個點是否在某條線段的一邊上,就可以利用叉乘的方向性,來...
如何實現乙個迴圈緩衝區模型
下面是乙個ringbuffer模型的完整實現,歡迎讀者參考和指正 typedef unsigned char byte template class ringbuffer ringbuffer ringbuffer const ringbuffer copy m poppos 0 else m pu...
如何實現乙個迴圈緩衝區模型
下面是乙個ringbuffer模型的完整實現,歡迎讀者參考和指正 typedef unsigned char byte template class ringbuffer ringbuffer ringbuffer const ringbuffer copy m poppos 0 else m pu...