W作者z1976 (z1976)
看板C_and_CPP
标题[问题] 拖曳文件到视窗程式任何区域 (BCB/VCL)
时间Fri Aug 25 01:02:49 2017
开发平台(Platform): (Ex: Win10, Linux, ...)
Windows 10/x86
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
C++ Builder XE7
问题(Question):
首先... 我要问的问题是我前年做过的程式,完成品在此:
https://goo.gl/dcgrvu
这是支含简单加解密的文字编辑器
但是code搞丢了,最近要做些修改只好拿做到一半的版本来重制
目前写到一半的重制版的源码如下:
https://github.com/zackjtl/SecureEditor.git
(所以以下描述的档案拖曳功能是可以做出来的... 但是我忘记怎麽写了)
程式中有一个空白的PageControl;可从外面拖曳程式进来 (或在argument中传入),
每一个档案各开一个TabSheet然後TabSheet中有嵌入一个Frame,
Frame中有档案选取按钮 (可以变更档案),和RichEdit用来编辑该档案
所以打开一个(或以上) 档案後.. 画面中会有如下阶层:
MainForm -> PageControl -> TabSheet -> Frame -> RichEdit
然後目前要解决的问题是档案拖曳到整个视窗区域都要有效.. 而不是只有局部有效
DragAcceptFiles有呼叫了,ChangeWindowsMessageFilter也有了
确实可以拖曳档案进来了,但差别在...
原先的完成版,无论拖曳档案到程式任何地方,
MainForm都可以收到WM_DROPFILES讯息。
但是重制的版本...
如拖曳到TabSheet所在区域,MainForm不会收到WM_DROPFILES讯息
如拖曳到RichEdit所在区域,还会出现禁止拖曳的游标图案。
我记得当初解决这个并没有很复杂... 只是就忘记怎麽写了 囧
网路上怎麽找也找不到我要的答案
烦请有经验的... 开示一下,感恩
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.224.242.191
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1503594172.A.3EF.html
※ 编辑: z1976 (36.224.242.191), 08/25/2017 01:04:57
1F:→ z1976: 已经找到问题,是管理员权限下才会这样 08/25 14:46