句:
ChangeClipboardChain(handle, hwndNextViewer);
SendMessage(hwndNextViewer,WM_CHANGECBCHAIN,Handle,hwndNextViewer);
函数ChangeClipboardChain是SetClipboardViewer的逆操作,能将第一个参数handle指定的窗口从链中删
除,第二个参数是链中下一个窗口的句柄,是供系统调整链表用的,我们不用管它。SendMessage是向链中的下一
个窗口发送一个剪贴板查看链已经改变的消息(WM_CHANGECBCHAIN),让它进行内部程序的调整。第三和第四参数是
当前退链窗口和下一个窗口的句柄。
同样的,当链中的其它窗口退链时也会发送 WM_CHANGECBCHAIN 消息,你必须接收这个消息。在 private 部
分加入:
procedure ClipboardChangeCBChain(var message: TMessage);message WM_CHANGECBCHAIN;
再在implementation后加入处理过程,以调整剪贴板查看链。
procedure TForm1.ClipboardChangeCBChain(var message: TMessage);
begin
with message do
begin
if WParam=hwndNextViewer then
hwndNextViewer := LParam
else if (hwndNextViewer <> NULL) then
SendMessage(hwndNextViewe