小问题(50分)

  • 主题发起人 主题发起人 Keyes
  • 开始时间 开始时间
K

Keyes

Unregistered / Unconfirmed
GUEST, unregistred user!
把文件拖到程序中,比较简单!
可是我没有见过,把东西拖到文件夹,桌面等,建立文件或快捷方式.
另外,如何随便在窗口标题栏上创建按钮,(象最大化,最小化...)和其他
如象realplay g2上的
 
呵呵, 好象要创建没有标题栏的form, 然后自己画个新的标题栏就可以了:-)
拖拽是根据目的不同, 创建不同对象, 如文件对象, 或文件名字符串等.
 
>>拖动到文件夹,桌面,建立文件或快捷方式.

这个并不难啊,文件夹是directory,桌面是windows/desktop,也是directory,直接
在相应位置创建或copy文件就行了,快捷方式也是文件lnk.

在标题上创建按钮可是老问题了,一般有两种方法,用现有控件或做个假标题栏.看看
已答问题吧.
 
可以直接修改标题栏, 可以在WM_NCACTIVATE中画你自己的标题栏
 
我到有个控件可以方便地把按钮做到标题兰上,如果要可以给我写信.
 
>这个并不难啊,文件夹是directory,桌面是windows/desktop,也是directory,直接
>在相应位置创建或copy文件就行了,快捷方式也是文件lnk.
^^^^^^^^^^
问题是怎样得到这个directory!!
 
你是不是这个意思,要目录名
function GetDirectory: string;
var
Pidl: PItemIDList;
LinkDir : string;
begin
// Get the folder location (as a PItemIDList)
result:='';
if SUCCEEDED(SHGetSpecialFolderLocation(form1.handle,CSIDL_DESKTOPDIRECTORY , Pidl))
then begin
// Get the actual path of the desktop directory from the PItemIDList
SetLength(LinkDir, MAX_PATH); // SHGetPathFromIDList assumes MAX_PATH buffer
SHGetPathFromIDList(Pidl, PChar(LinkDir)); // Do it
SetLength(LinkDir, StrLen(PChar(LinkDir)));
result := LinkDir+'/';
end;
end;
 
若是被拖放的文件名,用dragqueryfile
 
>>>>>>>>>>
有没有用过写字板,
她可以把选定的文本拖到任何一个地方,建立一个文件!!!!
如何实现?
>>>>>>>>>>
 
Keyes:有个控件,可以知道24个系统目录的位置。它是通过查询
注册表得到的。要不要?
 
你要想知道wordpad怎么干的,可以看VC++的例子,(VC++里有wordpad的源代码)
 
>>cAkk
详细一点!!!!!!关于ole.
 
dragdrop控件中的dropfilesource能实现你的要求(带原码,例子)
 
你要是想实现象wordpad一样的功能, 只要把drag的内容存成一个文件, 然后用这个
文件替换掉drag的内容就可以了.
 
多人接受答案了。
 
后退
顶部