在基于CDialog的MFC程序中,使用 HWND hwnd = SetClipboardViewer();
在debug模式中,没有任何问题,可以监视Clipboard的动作。但要编译成Release后,只要运行到SetClipboardViewer()就会死机,为什么?我的系统是win 2000 server +sp4 、vc6.0+sp4
在debug模式中,没有任何问题,可以监视Clipboard的动作。但要编译成Release后,只要运行到SetClipboardViewer()就会死机,为什么?我的系统是win 2000 server +sp4 、vc6.0+sp4
请在用了 ChangeClipboardChain() 之后立即调用 GetLastError() ,再用 SUCCEEDED() 宏来检验 ChangeClipboardChain() 返回值,从而判断是否成功。
afx_msg void OnChangeCbChain(
HWND hWndRemove,
HWND hWndAfter
);
没有返回值的。
我用你的方法试了一下,不是你所说的问题。
如果在OnInitDialog()中使用SetClipboardViewer()会马上出错,如果是用一个按钮来运行SetClipboardViewer()时,只要不让对话框失去焦点不会出错,只要失去焦点时才会出错
1.GetClipboardViewer() 返回 chain 中第一个窗口( window )的句柄( handle )
2.SetClipboardViewer() 向 chain 首部添加一个 window 并且返回一个 handle 给下一个 viewer
3.ChangeClipboardChain() 从 chain 中删除一个 window.另外,当调用 SetClipboardViewer() 时要小心,你必须保存它返回的 handle 并使用这个 handle 在适当的时候来传递任何 WM_DRAWCLIPBOARD 或者 WM_CHANGECBCHAIN 消息,
同样的,在用了 SetClipboardViewer() 之后,应使用 GetLastError() 来返回一个 DWORD,再用 SUCCEEDED() 宏来测试这个返回值。