我想在用户选择CListCtrl中的行时执行一些代码(报表视图,我不关心其他查看模式).
我如何抓住这个活动?是否有一些我可以映射的消息或像"OnSelectionChanged"这样的方法?
在我的应用程序中,我想从另一个线程向对话框发送消息.我想将std :: exception派生类引用传递给对话框.
像这样的东西:
try {
//do stuff
}
catch (MyException& the_exception) {
PostMessage(MyhWnd, CWM_SOME_ERROR, 0, 0); //send the_exception or the_exception.error_string() here
}
Run Code Online (Sandbox Code Playgroud)
我想在对话框中收到消息并显示错误 the_exception.error_string()
LPARAM CMyDlg::SomeError(WPARAM, LPARAM)
{
show_error( ?????
return 0;
}
Run Code Online (Sandbox Code Playgroud)
std::string the_exception.error_string()我猜,传递使用PostMessage也没关系.
MFC中CEdit控件中包含的文本字符串的最大长度是多少?在任何地方记录角色30001之后尝试添加角色时,我会发出一声嘟嘟声?我可以在CEdit中显示更长的文本吗?我应该使用另一个控件吗?
正如"Windows程序员"在下面所说,当用户键入时,文本长度限制与我们使用SetWindowText以编程方式设置文本时不一样.在任何地方都没有提到以编程方式设置文本的限制.用户输入的默认文本lentgth限制是错误的.(见下面我自己的帖子).
我猜测在调用pEdit-> SetLimitText(0)之后,编程和用户输入文本长度的限制都是7FFFFFFE字节.我对吗?
在vista中,当将超过40000个字符的文本粘贴到CEdit中时,它变得没有响应.如果我先前调用了SetLimitText(100000)并不重要.
这发生在Vista上.我创建了一个基于MFC项目的新对话框来测试它.我在对话框中添加了一个CEdit控件.我调用SetLimitText让我的CEdit接收100000个字符.我试过两个:
this->m_cedit1.SetLimitText(100000);
UpdateData(FALSE);
Run Code Online (Sandbox Code Playgroud)
和
static_cast<CEdit*>(GetDlgItem(IDC_EDIT1))->LimitText(100000);
Run Code Online (Sandbox Code Playgroud)
我把这些调用放在InitDialog上.
在我将5461个字符粘贴到我的CEdit后,它变为空白且无响应.关于是什么导致这个和变通办法的任何想法都能够在CEdit或任何其他控件中粘贴长文本串?
注意:5461是二进制的0x1555或1010101010101,我觉得很奇怪.
如果我粘贴5460个字符我没有问题.
这里的开发人员安装了不同的 SDK,我希望我的 Visual Studio 项目使用任何大于 10.0 的可用 SDK,而无需确切指定是哪一个。有没有办法做到这一点?
在 vcxproj 文件中:
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
Run Code Online (Sandbox Code Playgroud) 你知道什么好的个人资料?
测量和调整C++ MFC应用程序性能的好方法是什么?
算法的分析真的是必要的吗?http://en.wikipedia.org/wiki/Algorithm_analysis
致电时:
AfxMessageBox(strMsg, MB_YESNO);
Run Code Online (Sandbox Code Playgroud)
将显示一个带有"是"和"否"按钮的消息框.但是右上角的"X"(关闭按钮)被禁用,按ESC无效.
这是因为唯一有效的结果是IDYES和IDNO,而不是IDCANCEL.
是否有快速启用此行为的方法?我想避免的:
在vista中,删除文件时,要求确认的对话框只有"是"和"否",也可以通过关闭按钮或ESC取消.我猜这是一个自定义对话框.
我想在桌面应用程序中创建数据可视化,使用框架,语言和库来帮助完成这类任务.可视化应该是交互式的:可点击,可拖动,可自定义,动画......
我想创建的内容类似于此处显示的示例:http://www.visualcomplexity.com/vc/
这些是我已经知道的链接:http://delicious.com/laura_laura/visualization?setcount = 100
首选的语言是C++/Visual C++(MFC),因为我对它很熟悉,但欢迎使用任何其他技术,我想从Visual C++中"尽可能相似"列出与Visual"非常不同"的列表. C++.
WPF,flex,Adobe Air,flare,Javascript(在浏览器中作为客户端应用程序运行,可以访问本地文件或作为桌面应用程序)是可能的,发布任何有关示例,教程,操作方法等的良好链接了解.
不同选项的学习曲线和复杂性是什么?你会选择哪一个?为什么?你有没有和你一起工作过,你的经历如何?你会如何从这个特征的项目开始?
我将CListCtrl子类化为我自己的类,并在几个对话框和视图中使用它.我想要做的是在垂直滚动ClistCtrl时执行一些代码.我需要它在CListCtrl子类本身.
我可以使用demoncodemonkey提供的方法检测与滚动条交互时触发的滚动:
messagemap:
BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl)
ON_WM_VSCROLL()
END_MESSAGE_MAP()
Run Code Online (Sandbox Code Playgroud)
方法声明:
class CMyListCtrl : public CListCtrl
{
//...
protected:
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
DECLARE_MESSAGE_MAP()
};
Run Code Online (Sandbox Code Playgroud)
方法实现:
void CMyListCtrl::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
//do some stuff here
CListCtrl::OnVScroll(nSBCode, nPos, pScrollBar);
}
Run Code Online (Sandbox Code Playgroud)
但:
鼠标滚轮不会触发OnVScroll.
当点击底部部分可见的CListCtrl项目(它向上滚动以使项目完全可见)时,自动滚动也不会触发OnVScroll.例如:
部分可见的项目http://i37.tinypic.com/2guxtfn.png
单击项目9会导致ClistCtrl滚动一点,以便项目完全可见.
mfc ×9
c++ ×4
visual-c++ ×3
clistctrl ×2
.net ×1
c# ×1
cdialog ×1
cedit ×1
character ×1
cstring ×1
dialog ×1
messagebox ×1
optimization ×1
performance ×1
postmessage ×1
scroll ×1
sdk ×1
string ×1
vcxproj ×1
windows ×1