- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 VC VSlistBox的debug Assertion Failed, afxvslistbox.cpp line: 177错误分析及解决方案
这个问题其实是MFC控件无法初始化引起的。通过debug发现错误在CDialogEx::OnInitDialog();原因是资源脚本编译时没有包含对MFC控件的支持!一般情况下,低版本的VS项目在高版本打开可能会出现这样的问题。解决方法如下:资源视图,右键点击->资源包括->编译时指令(TEXTINCLUDE 3);在//标准控件后面添加代码:#if !defined...
2019-11-13 12:52:55
426
原创 OpenGL绘图类带有模型旋转、平移与缩放功能,一句代码完成模型绘制,不需要学习opengl
特性:包含有opengl的配置,使你的项目不需要进行opengl配置,直接使用opengl. 一句代码便可使用,不需要了解opengl.下载:opengl绘图类安装好OpenGL,以下为使用实例:1. 在Visual Studio中新建一个对话框应用程序OpenglTest,添加Opengl绘图类的文件到该项目,在COpenglTestDlg头文件中添加 #include “Ope...
2019-08-18 16:13:47
904
原创 VC 属性表单CPropertySheet的标签添加图标
网上的方法基本上都是通过 m_psp的设置,典型的代码如下:// 设置标签的图标:这种方式添加的图标分辨率与颜色深度都很低。 HICON hIcon = AfxGetApp()->LoadIcon( IDI_PPAGE_COORDS ); ASSERT( hIcon != NULL ); m_psp.hIcon = hIcon; ...
2018-10-28 00:23:31
436
原创 VC 从编辑框CEdit或富编辑控件CRichEditCtrl读取大容量文本并写入文件的方法
本文解决编辑框、富编辑控件的内容写入文件时,文本长度太大时写入内容被截断的问题!读取编辑框内容并写入文件,可能最常用的方法是创建文件,利用GetWindowText, 或GetDlgItemText读取编辑框或富编辑控件(Multiline)的内容到字符串,将字符串buffer写入文件。常见代码如下:CFile file("temp.txt", CFile::modeReadWrite | ...
2018-10-22 14:59:07
1180
原创 VC ListBox列表框实现自动水平滚动功能
利用CListBox::SetHorizontalExtent()成员可实现该功能。网上可行的方法主要是添加一个CListBox的派生类,并重载其AddString, InsertString方法。虽然使用方便,但是额外添加一个类。本文在不添加派生类的情况下实现该功能。1. 首先建立一个对话框CMyDlg的应用程序,添加一个列表框、三个按钮(添加、编辑、删除),列表框右键属性-》Horizon...
2018-09-01 17:00:39
1389
3
原创 VC对话框上Tab控件的各子标签及其与主对话框之间的数据传递
假设主对话框已经初始化好了Tab控件(具体参考:MFC的TAB控件使用详细说明),主对话框CMainDlg成员变量m_tab, m_d1, m_d2,分别代表Tab控件,子标签1,子标签2。主对话框及各标签的编辑控件绑定一个变量m_data。一、子标签调用主对话框的数据成员方法:在子标签的处理函数OnClickedBtn1中,使用GetParent()->GetParent()得到主...
2018-08-31 14:49:43
2367
1
原创 MFC VSListBox的Heap corruption detected错误分析及解决方法
VS2010对很多MFC开头的控件有BUG,典型的就是VSlistbox控件。在VS2010中,通常,我们在一个基于对话框的应用程序中,在工具箱中拖放一个MFC VSListBox控件,并关联一个成员变量。接着编译、运行。出现debug error: Heap corruption detected. 原因分析:是对象存储的大小超过对应的堆栈内存上限,超出的部分需要被存储在后面的内存地址中。然而在...
2018-04-18 20:21:04
620
原创 使用CArray实现长度可变的二维数组的方法
MFC CArray可实现大小可扩展的一维数组。实现二维数组一般有两种方法:1. 从CArray派生模板类,并实现operater=操作符。(这种方法网上资料很多,但大多都有问题)2. 本文方法---直接从CArray模板类嵌套产生,可实现任意类型的二维数组。这里以int类型为例,在基于对话框的应用程序中,添加按钮的消息处理函数:void CxxxDlg::OnBnClicked...
2018-04-16 22:25:20
2609
原创 MFC Toolbar工具栏的Tooltip信息提示显示乱码的解决方法
动态创建工具栏并启用Tooltip的步骤可参考: MFC对话框中的工具栏、状态栏设计小结然而,该方法的提示信息显示乱码,主要原因是程序启用unicode字符集,CString::GetBuffer函数返回LPTSTR,定义了Unicode宏的情况下为LPWSTR,奇怪的是在VS2010下就是有问题。正确的做法是修改消息响应函数OnToolTipNotify部分的代码如下:BOOL Cwar3Dlg...
2018-03-29 22:35:12
1150
原创 MFC TreeCtrl树形控件中限定右键点击节点弹出菜单
一、创建3个菜单,ID分别为IDR_MENU2,IDR_MENU3,IDR_MENU4,这些菜单必须要有子菜单项。二、在树形控件右键-》属性-》事件-》添加右键点击处理。三、在消息处理函数中添加代码void CGar3Dlg::OnRclickTreePhase(NMHDR *pNMHDR, LRESULT *pResult){ // TODO: 在此添加控件通知处
2018-03-28 00:52:56
5054
原创 MFC Tab控件初始化后看不见切换的对话框的原因分析
目前网上的教程创建的tab控件大多都有问题。主要有两方面原因:1: 组框覆盖了。组框不会盖住编辑框等控件,奇怪的是它会盖住tab控件。将组框设为透明即可。2: tab切换键看不见。是子对话框窗口的位置调节问题,tab切换键在上部的,需要将子对话框纵坐标下移。...
2018-03-27 23:53:16
2637
原创 MFC Toolbar 工具栏按钮添加消息响应
工具栏按钮消息响应需要的是对应按钮的命令ID。对于动态方式创建的工具栏,其按钮的命令ID在类向导ID列表中是找不到的,只能找到图标的ID。按下述步骤不能添加事件响应。(1)VS2010 打开类向导,选择“Message Maps”选项卡,在“Class name”列表框选择创建了工具栏的对话框类,在“Object Ids”列表中选择工具栏按钮ID,在“Messages”列表中选择“COMMAND”...
2018-03-27 23:49:31
7942
原创 VC Debug Assertion failed错误常见原因分析
1. 失去与控件关联的变量,常见情况为控件关联了变量,删除控件却忘了解除变量关联。2. 重复操作,对话框创建及点击OK时会自动执行UpdateData(), 在这附近调用update data()就会出现Assertion failed.3. 从一个不存在的对象获取数据,例如:HTREEITEM hRoot=m_maintree.GetSelectedItem(); //在没有选择节点的情况下为N...
2018-03-27 23:09:00
2825
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人