CAD工具之家's Archivers

From boitboy on 2014-02-10 19:27:06

拷贝文字到剪贴板中

//功能: 将CString转换成char*,自动区分UNICODE和ASCII //参数: swString,需要转化的字符串 //      szBuffer,char*指针,使用完后记得使用free释放 //返回: void ConvertToLPCSTR(char*& szBuf,CString swString) { #ifdef _UNICODE  szBuf = NULL;  UINT  nLen  = NULL;  nLen = WideCharToMultiByte(CP_ACP, 0, swString/*wszString*/, -1, NULL, 0, NULL, NULL);  szBuf = (char*)malloc(nLen + 1);  int nRet = WideCharToMultiByte(CP_ACP, 0, swString, -1, szBuf, nLen, NULL, NULL);  if (0 == nRet)  {   free(szBuf);   szBuf = NULL;  } #else  szBuf = NULL;  int nLen=swString.GetLength()+1;  szBuf = (char*)malloc(nLen + 1);  strcpy(szBuf,swString); #endif } //拷贝文字到剪贴板中 BOOL CopyTextToClipboard(CString strText,HWND hWnd=NULL) {  BOOL rc=OpenClipboard(hWnd);  if(!rc)   return rc;  EmptyClipboard();  char* szBuf=NULL;  ConvertToLPCSTR(szBuf,strText);  DWORD cch=strlen(szBuf);  HGLOBAL hglbCopy = GlobalAlloc(GMEM_MOVEABLE,   (cch + 1) * sizeof(char));  if(hglbCopy==NULL)  {   free(szBuf);   CloseClipboard();   return FALSE;  }  char* pCopy=(char*)GlobalLock(hglbCopy);  strcpy(pCopy,szBuf);  GlobalUnlock(hglbCopy);  SetClipboardData(CF_TEXT, hglbCopy);  free(szBuf);  CloseClipboard();  return TRUE; }

查看完整版本: 拷贝文字到剪贴板中

Tags: 剪贴板


©CAD工具之家
创办于:2013年5月24日