如何把圖檔可以在image上移動 |
尚未結案
|
frankh
一般會員 發表:25 回覆:36 積分:12 註冊:2005-05-04 發送簡訊給我 |
原本我的程式是可以把圖檔崇form3拖到form2的image2裡面...但是卻很難放到想要的位置..一定要對好指標的位置..想請問一下能不能把圖拖到image裡面但可以作移動的動作來調整圖檔擺放的位置?
void __fastcall TForm2::Image2DragOver(TObject *Sender, TObject *Source, int X, int Y, TDragState State, bool &Accept) { if(Source == Form3->ListView1 || Source == Form4->ListView1 ||Source == Form5->ListView1) Accept = true; } //--------------------------------------------------------------------------- void __fastcall TForm2::Image2DragDrop(TObject *Sender, TObject *Source, int X, int Y) { Graphics::TBitmap *Bmp = new Graphics::TBitmap(); AnsiString GoFile; if(Source == Form3->ListView1) GoFile = "D:\\eyebrow100\\" + Form3->ListView1->Selected->Caption; else if(Source == Form4->ListView1) GoFile = "D:\\eyebrow100\\" + Form4->ListView1->Selected->Caption; else GoFile = "D:\\eyebrow100\\" + Form5->ListView1->Selected->Caption; Image3->Picture->LoadFromFile(GoFile); Image3->Width=Image3->Picture->Width; Image3->Height=Image3->Picture->Height; Bmp->Assign(Image3->Picture->Bitmap); Bmp->Transparent=true; Image2->Canvas->Draw(X,Y,Bmp); delete Bmp; void __fastcall TForm2::FormCreate(TObject *Sender) { Image1->Canvas->Refresh(); Image2->Canvas->Refresh(); Image2->ControlStyle< |
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
frankh 您好: 您在圖像載入後,可以直接設定其位置,如果要在載入後要能隨意的調整位置,可以參考下列作法:
// 設定下列全域變數 int oldX, oldY; bool MoveFlag = false; void __fastcall TForm1::FormCreate(TObject *Sender) { // 設定 "要移動圖像之上層物件" 的 DoubleBuffered 為 true, // 以避免 (或降低) 圖像移動時的閃爍現象,此處假設前述物件為 Panel1。 Panel1->DoubleBuffered = true; } // 下列三個滑鼠事件處理程序請自行設給要處理的 Image 元件 void __fastcall TForm1::ImageMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if (Shift.Contains(ssLeft) && !MoveFlag) { // 按下滑鼠左鍵時準備拖曳圖像 SetCaptureControl(dynamic_cast7 天天敲鍵盤 v 時時按滑鼠 8 發表人 - RedSnow 於 2005/10/19 01:52:38 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |