注册 登录
编程论坛 VC++/MFC

[MFC]剪贴板的问题,求助,

wuxiangbo098 发布于 2010-10-26 23:45, 789 次点击
void CnotebookView::OnFileCopy()
{
    // TODO: 在此添加命令处理程序代码
    int nStart,nEnd;
    CEdit strSel;
    strSel.GetSel(nStart,nEnd);
    CString str;
    strSel.GetWindowTextA(str);
    DWORD dSize = (nEnd - nStart +1) *sizeof (TCHAR);
    HANDLE hGlobalMemory = GlobalAlloc(GMEM_MOVEABLE, dSize);
    LPBYTE lpGlobalMemory = (LPBYTE)GlobalLock(hGlobalMemory);
    memcpy_s(hGlobalMemory,    dSize,    strSel,    dSize);
    GlobalUnlock(hGlobalMemory);
    HWND hWnd = GetSafeHwnd();
    ::OpenClipboard(hWnd);
    ::EmptyClipboard();
    ::SetClipboardData(CF_UNICODETEXT, hGlobalMemory);
    ::CloseClipboard();
}
用的是MFC中间的多文档,程序一运行就说系统错误,调试的时候,发现,那个STR是指向错误的指针,初学做记事本,希望大侠们帮帮忙。
2 回复
#2
cnfarer2010-10-27 07:15
一个Copy好像不需要这么费事吧?
#3
wuxiangbo0982010-10-27 08:17
回复 2楼 cnfarer
恩恩,可以调用CEdit 的COPY,
不过我自己想实现这个功能,也就是写出Copy代码,而不是用微软提供的方法,。
可是,不知道问题出现在那里,
1