導航:首頁 > 五金知識 > mfc工具箱拖拽

mfc工具箱拖拽

發布時間:2022-10-18 00:44:24

⑴ MFC編程中怎麼找到工具箱

VC6.0還是高級版本?
工具箱只有你打開資源後才能看到的
如果還是沒有的話
對於VC6.0來說,Tools-Customize-ToolBars,把Controls前面的復選框選中就OK了

⑵ vs2013中用MFC和C++創建程序後,工具箱中的控制項全部顯示灰色,無法拖進對話框。

我碰到過一次,具體是因為我在使用控制項的時候正在運行一個程序,這樣,vs你再向這個工程里添加東西是不可以的!我的就是因為這個,希望,能解決你的問題。

⑶ mfc中如何實現 滑鼠拖拽圖片

這個效果我剛好做過,呵呵!
首先,在View類中重載滑鼠Down,Move,Up消息函數,這個沒問題吧!
滑鼠按下函數代碼如下:
void CMy2009302590235liliView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CMy2009302590235liliDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
LPSTR lpDIB=(LPSTR)::GlobalLock(pDoc->hDIB);
LPSTR lpDIBBits;
lpDIBBits=FindDIBBits(lpDIB);
LONG Width=DIBWidth(lpDIB);
LONG Height=DIBHeight(lpDIB);//這三句是為了獲得圖像的高和寬,這個你可以用你自己的方法獲得。
CRect rectPic;
ptput=point;
rectPic.left=0;
rectPic.right=Width;
rectPic.top=0;
rectPic.bottom=Height;
if(rectPic.PtInRect(ptput))
{
SetCapture();
}//以上的步驟是為了判斷你滑鼠點下的地方是否在圖片區域內。這個我相信你應該看得懂
CScrollView::OnLButtonDown(nFlags, point);

}
滑鼠移動,重點在這里
void CMy2009302590235liliView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

CScrollView::OnMouseMove(nFlags, point);
if(GetCapture())//這個if是為了判斷滑鼠是否在圖像區域內,在的話執行下面的代碼
{
CMy2009302590235liliDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);//這兩行是為了獲得指針pDoc,這個因該不陌生
LPSTR lpDIB=(LPSTR)::GlobalLock(pDoc->hDIB);//鎖定圖像
LPSTR lpDIBBits;
lpDIBBits=FindDIBBits(lpDIB);
LONG Width=DIBWidth(lpDIB);
LONG Height=DIBHeight(lpDIB);//以上是為了獲得圖像的高和寬
DWORD m_dwsizeImage=Width*Height;//計算大小
LPBYTE m_lpImageCopy=(BYTE*)malloc(m_dwsizeImage);//分配內存
memcpy(m_lpImageCopy,lpDIBBits,m_dwsizeImage);
DWORD wBitCount = ((LPBITMAPINFOHEADER)lpDIB)->biBitCount;//這個是獲得每一個像素所佔用的位元組
DWORD lRowBytes=WIDTHBYTES(Width*wBitCount);
LPBYTE lpData=(LPBYTE)lpDIBBits;
LPBYTE lpOldBits=m_lpImageCopy;
CPoint m_ptmove=point;
//以下是具體演算法,不做過多解釋,可以直接復制粘貼
DWORD dXOffset;
DWORD dYOffset;
dXOffset=m_ptmove.x-ptput.x;
dYOffset=m_ptmove.y-ptput.y;
ptput=m_ptmove;
DWORD i;
DWORD j;
long i0=0;
long j0=0;
for(i=0;i<Height;i++)
{
for(j=0;j<Width;j++)
{
LPBYTE lpTemp=lpData+lRowBytes*(i)+(j);
i0=i+dYOffset;
j0=j-dXOffset;
if((j0>=0)&&(j0<(long)Width)&&(i0>=0)&&(i0<(long)Height))
{
*lpTemp=*(lpOldBits+lRowBytes*(i0)+(j0));
}
else
{
*lpTemp=(BYTE)255;
}
}
}

}

}
滑鼠UP,這里簡單的多,只要釋放以下滑鼠就可以了。
void CMy2009302590235liliView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

CScrollView::OnLButtonUp(nFlags, point);

Invalidate(FALSE);
ReleaseCapture();
}

⑷ MFC中如何能讓工具欄不被拖拽

自己寫個類吧

閱讀全文

與mfc工具箱拖拽相關的資料

熱點內容
steam令牌換設備了怎麼辦 瀏覽:246
新生測聽力儀器怎麼看結果 瀏覽:224
化學試驗排水集氣法的實驗裝置 瀏覽:156
家用水泵軸承位置漏水怎麼回事 瀏覽:131
羊水鏡設備多少錢一台 瀏覽:125
機械制圖里型鋼如何表示 瀏覽:19
測定空氣中氧氣含量實驗裝置如圖所示 瀏覽:718
超聲波換能器等級怎麼分 瀏覽:800
3萬軸承是什麼意思 瀏覽:110
鑫旺五金製品廠 瀏覽:861
蘇州四通閥製冷配件一般加多少 瀏覽:153
江北全套健身器材哪裡有 瀏覽:106
水表閥門不開怎麼辦 瀏覽:109
花冠儀表盤怎麼顯示時速 瀏覽:106
洗砂機多少錢一台18沃力機械 瀏覽:489
超聲波碎石用什麼材料 瀏覽:607
組裝實驗室製取二氧化碳的簡易裝置的方法 瀏覽:165
怎麼知道天然氣充不了閥門關閉 瀏覽:902
公司賣舊設備掛什麼科目 瀏覽:544
尚葉五金機電 瀏覽:59