線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1873
推到 Plurk!
推到 Facebook!

從外部視窗拖曳檔案到 Form中的原件

缺席
ahapro
一般會員


發表:4
回覆:2
積分:1
註冊:2007-12-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-01-07 16:07:33 IP:60.248.xxx.xxx 訂閱
各位好
關於拖曳檔案至Form(或原件)中
我已參考 : http://delphi.ktop.com.tw/board.php?cid=168&fid=914&tid=40768

我公司的BCB版本為 5.0,在WinXP SP2上運行
不過只有方法2(拖曳至整個Form)可行
至於拖曳到特定元件,Ex : CheckListBox
雖然可通過Compiler,但是執行時,連程式視窗都還沒開啟,便發生了"Stack over flow",自動關閉程式
請問,我所使用的元件"CheckListBox"是否有其限制,或是需要特別的設定!!

我的程式碼如下

[code cpp]
class TMainForm: public TForm
{
//...
TCheckListBox *IRCCCheckListBox;
//...
public:
void __fastcall m_ComponentWndProc(TMessage& Message);
};

__fastcall TMainForm::TMainForm(TComponent* Owner) : TForm(Owner)
{
IRCCCheckListBox->WindowProc = m_ComponentWndProc;
}

void __fastcall TMainForm::FormCreate(TObject *Sender)
{
DragAcceptFiles(IRCCCheckListBox->Handle,true);
}

void __fastcall TMainForm::m_ComponentWndProc(TMessage& Message)
{
if (Message.Msg == WM_DROPFILES )
{
DWORD nFileNameSize=DragQueryFile( (HDROP)Message.WParam,0,NULL,0);
char * pcFileName=new char[nFileNameSize 1];
DragQueryFile((HDROP)Message.WParam,0,pcFileName,nFileNameSize 1);
//.......
delete [] pcFileName;
}

WndProc(Message); //請問可以這樣使用嗎?? 或是不呼叫??

//(Component)->WndProc(Message);
//IRCCCheckListBox->WndProc(Message); 無法使用
//IRCCCheckListBox->WindowProc(Message); 只有這個可用,但是一樣會產生 Stack overflow
}

[/code]
編輯記錄
ahapro 重新編輯於 2008-01-07 16:09:18, 註解 無‧
ahapro 重新編輯於 2008-01-07 16:11:46, 註解 無‧
ahapro 重新編輯於 2008-01-07 16:13:48, 註解 無‧
ahapro 重新編輯於 2008-01-07 18:36:43, 註解 無‧
系統時間:2024-04-26 19:19:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!