Com中Dhtmledit无法使用复制粘贴等快捷键!(300分)

  • 主题发起人 主题发起人 l1_jun
  • 开始时间 开始时间
L

l1_jun

Unregistered / Unconfirmed
GUEST, unregistred user!
  如题,我编写了一个包含Dhtmledit的Exe程序和一个Dll模块,在这两个中使用快捷键都没有问题,但是在Com中的代码跟上述两个是一样的,却无法使用快捷键。
  请问各位高手,这种问题有没有遇到过?如何解决?

下面是我已用的两种方法(无效):
1)
initialization
OleInitialize(nil);

finalization
OleUninitialize;

2)主要代码如下,部分没贴上:
var
iOIPAO: IOleInPlaceActiveObject;
Dispatch: IDispatch;
begin

Handled := False;

if HTMLEdt = nil then
Exit;


Handled := (IsDialogMessage(HTMLEdt.Handle, Msg) = True);

if (Handled) and (not HTMLEdt.Busy) then

begin

if FOleInPlaceActiveObject = nil then

begin

Dispatch := HTMLEdt.ControlInterface;
if Dispatch <> nil then

begin

Dispatch.QueryInterface(IOleInPlaceActiveObject, iOIPAO);
if iOIPAO <> nil then

FOleInPlaceActiveObject := iOIPAO;
end;

end;


if FOleInPlaceActiveObject <> nil then

if ((Msg.message = WM_KEYDOWN) or (Msg.message = WM_KEYUP)) and
((Msg.wParam = VK_BACK) or (Msg.wParam = VK_LEFT) or (Msg.wParam = VK_RIGHT)) then

//nothing -do
not pass on Backspace, Left or Right arrows
else

FOleInPlaceActiveObject.TranslateAccelerator(Msg);
end
else
Handled := False;
end;
 
这个我不会,帮你顶也给分吧!
 
我重新写一个com的dll,里面就一个窗体,窗体上放一个Dhtmledit,加上
initialization
OleInitialize(nil);

finalization
OleUninitialize;
无法使用快捷键,但是在普通Dll里面却是可行的,不知道是不是跟Com的消息机制有关?
 
请有过DHtmlEdit使用经验的DFW指点一下!
 
晕!难道没有人碰到过这种问题?
 
加油啊,应该会有人用过DHtmlEdit开发的
 
后退
顶部