MFC橡皮筋矩形框技術

2021-08-01 23:16:11 字數 1843 閱讀 6184

在網上看過很多用在mfc對話方塊的介面上用滑鼠畫矩形框的例子,感覺有點亂,同時又達到我想要的效果,

經過不斷的嘗試以及改進,才終於達到我想要的效果。

這部分程式主要實現在對話方塊介面上的picture控制項內用滑鼠拖動畫矩形框並顯示,框大小隨意,且每次

void ccv10dlg::onlbuttondown(uint nflags, cpoint point)

else

if (!isinrct) //沒在矩形框內則滑鼠重新畫矩形

else

if (trect.bottom>pt_rect.bottom)

if (trect.right>pt_rect.right)

if (trect.left

.left)

//設定矩形框大小

m_rctcurtracker.m_rect.setrect(trect.left, trect.top, trect.right, trect.bottom);

m_rctcurtracker.m_rect.normalizerect();

m_rctcurtracker.gettruerect(&rc_showrect);//得到矩形區域的大小 ,經過recttracker後獲取其 rect區域,再將其畫在窗體上,此後的操作與操作rect無異。

rc_showrect.setrect(rc_showrect.left - pt_rect.left, rc_showrect.top - pt_rect.top, rc_showrect.right - pt_rect.left, rc_showrect.bottom - pt_rect.top);

//crect rc_clientrect, crect pt_rect

//獲取矩形框中的內容並儲存,m_subimgrect型別為rect,m_rdrawednum為int,注意防止邊界洩漏

double widthratio = double(image.cols) / rc_clientrect.width();

double heightratio = double(image.rows) / rc_clientrect.height();

m_subimgrect[m_rdrawednum].x = int((rc_showrect.left + 1) * widthratio);

m_subimgrect[m_rdrawednum].y = int((rc_showrect.top + 1)* heightratio);

m_subimgrect[m_rdrawednum].width = int((rc_showrect.width() - 2)* widthratio);

m_subimgrect[m_rdrawednum].height = int((rc_showrect.height() - 2)* heightratio);

subimg = image(m_subimgrect[m_rdrawednum]);

crgn rgn1;

rgn1.createrectrgnindirect(rc_clientrect);

invalidatergn(&rgn1, false); //呼叫onpaint函式重繪視窗,但是保留原來的背景圖

}cdialogex::onlbuttondown(nflags, point);

}void ccv10dlg::onpaint()

else

}}

以上**包含在picture控制項中如何顯示的問題,矩形框在控制項上如何顯示的問題,以及

如何提取滑鼠所畫矩形框中內容的問題,希望對大家有用,有問題可以多多提意見。

CRectTracker 橡皮筋類

crecttracker 俗稱 橡皮筋 類 是乙個非常有意思的類。你在windows中,在桌面上用滑鼠拖拽,便可以看到乙個虛線的矩形框,它便是橡皮筋.它可以用做顯示邊界,你也可以扽它的八個角用來放大縮小,做框選使用。如何通過程式設計來實現這種功能呢?這就是crecttracker類的作用 介紹橡皮筋...

OpenGL 橡皮筋技術

後天圖形學考試,整理了下實驗課上的opengl關於橡皮筋實驗的 簡單實現了如下功能 1.右鍵選單功能響應 2.右鍵選擇畫折線或矩形,可儲存 書上例子演變 3.可選取畫線或畫矩形的顏色,線寬,畫素大小 include include define num 100 折線的最大折線段 int flag 0...

iOS橡皮筋回彈

在html主頁面的header標籤中引入inbounce.js,即。當引入此檔案之後,ios端整個頁面都無法滑動或滾動,若想滾動的元素能夠實現滾動效果,則需要對滾動區域設定固定的高度,即height max height,同時也要設定overflow auto,實現頁面滑動。為防止ios端頁面滾動發...