首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

怎么用拖放的形式在TRichEdit中打开文件

2012-02-05 
如何用拖放的形式在TRichEdit中打开文件?如何用拖放的形式在TRichEdit中打开文件?最好有例子。[解决办法]//

如何用拖放的形式在TRichEdit中打开文件?
如何用拖放的形式在TRichEdit中打开文件?最好有例子。

[解决办法]
//.cpp
void __fastcall TForm1::FormCreate(TObject *Sender)
{
DragAcceptFiles(Handle, True);
}
//---------------------------------------

void __fastcall TForm1::WMDropFiles(TMessage &msg)
{
char FileName[_MAX_PATH]; // 缓冲区

// 获得拖拉的文件数目,该功能由第二个参数决定
int Sum = DragQueryFile(HDROP(msg.WParam), 0xFFFFFFFF, NULL, 0);

for(int i=0; i <Sum; i++ )
{
// 获取第i个拖拉文件的名字,并保存在缓冲区FileName中
DragQueryFile(HDROP(msg.WParam), i, FileName, _MAX_PATH);
// 在中显示拖拉文件的名字
RichEdit1-> Lines-> Add(FileName);
//加载文件
RichEdit1-> Lines-> LoadFromFile(FileName) ;
}
// 释放应用程序为传递文件名而开辟的内存空间
DragFinish(HDROP(msg.WParam));
}


//.h
....
private:// User declarations
MESSAGE void __fastcall WMDropFiles(TMessage &msg);
public:// User declarations
__fastcall TForm1(TComponent* Owner);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_DROPFILES, TMessage, WMDropFiles);
END_MESSAGE_MAP(TForm);
....


[解决办法]
应该是截获RichEdit的窗口消息,然后响应WM_DROPFILES消息。

wf2091139(峰子)给出的代码是将文件拖到窗体上就会打开这个文件(窗体上可能不止RichEdit这么一个控件吧)。在这个基础上略加修改就可以了。

热点排行