wxTheClipboard->Open()总是返回false
wxwidgets吧
全部回复
仅看楼主
level 2
my3world 楼主
linux mint 17
codeblocks+wxwidgets
我只是在wxwidgets工程默认的对话框工程中添加
#include <wx/clipbrd.h>
#include <wx/dataobj.h>
以及修改OnAbout()
void wxCopyDialog::OnAbout(wxCommandEvent& event)
{
wxString msg = wxbuildinfo(long_f);
// wxMessageBox(msg, _("Welcome to..."));
wxClipboardLocker locker;
if (!locker)
{
return;
}
// wxTheClipboard clipbrd;
if (wxTheClipboard->Open())
{
wxTheClipboard->SetData(new wxTextDataObject(wxT("test")));
wxTheClipboard->Close();
}
else
wxMessageBox(msg, _("Welcome to..."));
}
然后就总是弹出MessageBox,请问要如何解决?
2015年09月26日 14点09分 1
level 2
my3world 楼主
在窗体了添加了一个TextCtrl1测试了一下
2015年09月26日 16点09分 2
level 2
my3world 楼主
TextCtrl1->Copy(); // 无效
TextCtrl1->Paste(); // 有效
2015年09月26日 16点09分 3
level 2
my3world 楼主
经过尝试,发现问题出在
wxClipboardLocker locker;
if (!locker)
{
return;
}
没有这部分代码就正常了
另外,wxT宏不能用,得改成_("test")
但是这部分是照搬<使用wxWidgets进行跨平台程序开发>里面的代码....
求解疑
2015年09月26日 19点09分 4
level 2
my3world 楼主
然后奇怪的是, 当我在新建wxwidgets dialog工程->去除所有已有文件->去除工程中所有的链接库->新建main.cpp
#include </usr/include/wx-2.8/wx/clipbrd.h>
#include </usr/include/wx-2.8/wx/dataobj.h>
#include <wx/intl.h>
using namespace std;
int main()
{
wxClipboardLocker locker;
if (!locker) {
return -1; }
if (wxTheClipboard->Open()) {
wxTheClipboard->SetData(new wxTextDataObject(_("XXXXXXXXXXXXXXXXX")));
wxTheClipboard->Close(); }
return 0;
}
编译运行成功.
wxT宏还是不行, 复制文本到内存是空白内容.
2015年09月27日 15点09分 5
1