buffer-MFC中如何点击按钮然后复制编辑框中书写的文字。

问题描述

MFC中如何点击按钮然后复制编辑框中书写的文字。

使用了这么一段代码,结果运行的时候如果编辑框中是英文字母,只复制了第一个字母,如果是中文,复制的结果是乱码。求解具体怎么改。谢谢各位

void CMFCApplication2Dlg::OnBnClickedButCpy()
{
// TODO: 在此添加控件通知处理程序代码
CString source;
GetDlgItemText(IDC_EDI_TEXT, source);
if (OpenClipboard())
{
HGLOBAL clipbuffer;
char buffer;
EmptyClipboard();
clipbuffer = GlobalAlloc(GMEM_DDESHARE, source.GetLength() + 1);
buffer = (char
)GlobalLock(clipbuffer);
strcpy(buffer, (const char *)source.GetBuffer());
GlobalUnlock(clipbuffer);
SetClipboardData(CF_TEXT, clipbuffer);
CloseClipboard();
}
}

解决方案

no
hText = GetDlgItem(IDC_EDI_TEXT);
SendMessage(hText, WM_COPY, 0, 0);

解决方案二:

如果就是文本框,不需要那么麻烦,直接先文本框选中文本,往文本框发送wm_copy消息就可以了。

解决方案三:

你的程序的字符串应该被设置 Unicode,在工程属性中将这个设置 修改为多字节 试试。
否则,将 strcpy(buffer, (const char *)source.GetBuffer());
修改为: wcscpy(buffer, (const TCHAR *)source.GetBuffer());
同时将 buffer 的定义也修改为 TCHAR *

解决方案四:

注意要先调用 m_Edit->SetSel()选择一些文本,或者手工在文本框选中一些文本,再执行才有效果

解决方案五:

另外还有类似的消息
wm_undo
wm_redo
wm_paste
wm_cut
分别可以执行标准的撤销 重做 粘贴 剪切

解决方案六:

处理的字符集是unicode才能支持中文

解决方案七:

多查查msdn,找一本《windows编程》(有电子版)先入门下。

时间: 2024-08-03 18:26:15

buffer-MFC中如何点击按钮然后复制编辑框中书写的文字。的相关文章

mfc求助-如何在MFC中通过点击按钮浏览并打开PDF文件

问题描述 如何在MFC中通过点击按钮浏览并打开PDF文件 void Cpigai::OnNewpaper() {BROWSEINFO blnfo;ZeroMemory(&blnfosizeof(blnfo));blnfo.lpszTitle=_T(""请选择源文件路径:"");LPITEMIDLIST lpDlist;lpDlist=SHBrowseForFolder(&blnfo);if(lpDlist!=NULL){TCHAR chPath[25

android-如何点击按钮来启动一个 spinner 控件的 ItemSelected 事件?

问题描述 如何点击按钮来启动一个 spinner 控件的 ItemSelected 事件? 在程序中的 setOnItemSelectedListener 里有 spinner 控件,当我选择 spinner 的一项时,onItemSelected 事件就会启动.请问如何点击按钮来启动一个 spinner 控件的 ItemSelected 事件? spinnerFolder.setOnItemSelectedListener(new OnItemSelectedListener() { @Ove

在页面上放一个文本框和一个按钮,想文本框中输入内容点击按钮,读出输入的内容。发声的。可以听见的 谢谢。急急急急!!!!!!!!!!!!

问题描述 在页面上放一个文本框和一个按钮,想文本框中输入内容点击按钮,读出输入的内容.发声的.可以听见的谢谢.急急急急!!!!!!!!!!!!

scrollver展开-scrollview中,点击按钮展开一段文本,而且能定位到文本的低端怎么实现啊

问题描述 scrollview中,点击按钮展开一段文本,而且能定位到文本的低端怎么实现啊 scrollview中,点击按钮展开一段文本,而且能定位到文本的低端怎么实现啊 解决方案 大概思路是:XML文件中设置文本的TextView一个固定的高度,比如100dp,点击后再更改它的参数,把高度调成200dp或者其他值,这时候再让scrollview滚动到底部就行了: private ScrollView mScrollView; mScrollView = (ScrollView) getActiv

html jsp-html或者jsp中如何点击超链接,打开一个新窗口,点击一次,打开一个?

问题描述 html或者jsp中如何点击超链接,打开一个新窗口,点击一次,打开一个? 注册单击超链接时,页面不跳转?多次单击,只能打开一个页面,上次的被覆盖掉了.如何单击超链接时,单击一次,打开一个页面?写成注册同样不能解决 解决方案 window.open(""url"");

c++-MFC释放按钮以后,把焦点移动到编辑框中

问题描述 MFC释放按钮以后,把焦点移动到编辑框中 MFC中,想要在释放按钮以后,把焦点移动到编辑框中应该怎么做?如果用SetFocus应该怎么写? 能不能在鼠标点完按钮释放以后在编辑框内出线光标闪动呢? 解决方案 你在对话框的PreTranslateMessage中捕获 case WM_LBUTTONUP: 得到鼠标按钮弹起事件.同时GetDlgCtrlID()判断是否为对应的按钮ID 如果是的,然后你再 (CEdit*)GetDlgItem(IDC_EDIT1)->SetFocus(); 解

初学wp8开发:如何点击按钮打开一个新的界面

问题描述 初学wp8开发:如何点击按钮打开一个新的界面 请大家帮帮我,我想在一个界面点击按钮打开另一个界面应该怎么做?

javafx-JavaFx中如何点击超链接跳转到浏览器相应网页

问题描述 JavaFx中如何点击超链接跳转到浏览器相应网页 网上找的例子 不是我想要的效果,有人知道怎么实现妈? --------要实现 点击超链接 弹出浏览器百度网站 解决方案 用PHP判断客户端浏览器语言并跳转到相应的网页

java web-struts+hibernate中如何点击一个jsp页面就可以把从action获取出来,自动获取值

问题描述 struts+hibernate中如何点击一个jsp页面就可以把从action获取出来,自动获取值 当我index.jsp页面使用/s:action,会出现内存溢出的情况,因为我在struts配置文件加入index.jsp.所以而我只想用户点击这index.jsp页面就可以出现 数据,而不出现错误. 最好有代码,我比较笨.谢谢大家 解决方案 请求struts2→转向index.jsp,并附带数据.OK 解决方案二: 可以通过异步实现http://blog.csdn.net/sun201