MFC STATIC,Picture控件使用及无法添加变量的问题

http://blog.csdn.net/caowei880123/article/details/6261468

无法添加,后来看到评论,反思了一下,发现是因为用对话框生成了关联的类,然后又修改了对话框的ID号,生成的头文件中有
enum {IDD = IDD_Diaglog1}改一下ID号就行了。

具体原因,是我在前面手抖了一下, 将dialog的ID号改了。

以下是原文:

无法为MFC对话框程序的static添加变量(因而无法改变文本)

1、首先要把它的ID改一下,不能为默认的IDC_STATIC,然后再添加变量

2、或者将clw文件删除,重新打开工程看看。应该出现的。
    3、另外的方法就是用GetDlgItem(IDC_STATIC1)-> SetWIndowText( " ");修改

如果还是不行就DIY吧:

头文件添加CStatic m_name;

在::DoDataExchange函数中添加映射

DDX_Control(pDX, IDC_STATICNAME, m_name);

error C2440 “static_cast” 无法从“void (__thiscall CPppView )(void)”转换为“LRESULT (__t

文章分类:C++编程

不能转换void (_thiscall CMainFrame::*)(void)to LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)2010-05-13 11:35开发平台由VC6.0升级至VS2005,需要将原有的项目迁移,可能碰到类似错误:
error C2440: ‘static_cast‘ : cannot convert from ‘void (__thiscall CMainFrame::* )(void)‘ to ‘LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)‘

VS2005对消息的检查更为严格,以前在VC6下完全正常运行的消息映射在VS2005下编译不通过

ON_MESSAGE(WM_message,OnMyMessage);
   OnMyMessage返回值必须为LRESULT,其形式为:afx_msg LRESULT OnMyMessage(WPARAM, LPARAM);如果不符合,则有错误提示:
     error C2440: “static_cast”: 无法从“void (__thiscall CPppView::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
        在匹配目标类型的范围内没有具有该名称的函数
     error C2440: “static_cast”: 无法从“void (__thiscall CPppView::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
        在匹配目标类型的范围内没有具有该名称的函数

解决方法如下:

首先,把原来的消息函数返回值类型改为LRESULT,函数内可以随便写个return TRUE; 然后消息函数的参数必须改写成(WPARAM wParam,LPARAM lParam)而不论这两个参数是否用得到;最后,消息映射如ON_MESSAGE(WM_message,& OnMyMessage)

时间: 2024-07-30 06:02:34

MFC STATIC,Picture控件使用及无法添加变量的问题的相关文章

OpenCV获取摄像头视频并在MFC的Picture控件上显示

分为两步:OpenCV获取摄像头数据+图像在Picture上显示 第一步:OpenCV获取摄像头数据 参考:http://www.cnblogs.com/epirus/archive/2012/06/04/2535190.html http://blog.sina.com.cn/s/blog_6dbe9bdb0100nii7.html http://blog.csdn.net/augusdi/article/details/8762961 #include "stdafx.h" #in

MFC中picture控件坐标转换

opencv在MFC框架下应用时,不可避免要用到picture控件显示图片,但picture控件显示图片的基本单位是屏幕坐标系,如果需要获取像素坐标系,只需要进行一步简单的转换即可.当然如果是opencv2.0及以上版本,则需要用到CvvImage这个类,网上可以下载到. 坐标转换的核心思想就是根据picture空间客户区域的大小以及需要显示的图片原来的实际大小之间的比例关系,做一步简单转换,具体代码如下: 1 /*获取客户区域坐标 2 */ 3 CRect rect_ctr; 4 (GetDl

MFC 在Picture控件中显示图像(BMP

下面是关于怎样使用Picture Control显示BMP图片: 查找了一下SetBitmap是这样定义的: /////////////////////////////////////////////////////////////////////////////////// // uBmpResource:图片ID; uCtrlResource: Picture控件ID void SetBitmap(UINT uBmpResource, UINT uCtrlResource) { HBITMA

【MFC】picture控件 两种有细微差别的动态加载图片方法

摘自:http://www.jizhuomi.com/software/193.html VS2010/MFC编程入门之二十七(常用控件:图片控件Picture Control) 分类标签: 编程入门  VS2010  VC++  MFC 上一节中鸡啄米讲的是滚动条控件,本节主要讲一种简单实用的控件,图片控件Picture Control.我们可以在界面某个位置放入图片控件,显示图片以美化界面. 图片控件简介 图片控件和前面讲到的静态文本框都是静态文本控件,因此两者的使用方法有很多相同之处,所属

MFC 在Picture控件中显示图像(JPG)

首先选择图片: void Chbgk_picDlg::OnBnClickedButton1() { CFileDialog cfd(true,_T(".jpg"),NULL,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,_T("Executable Files (*.jpg)|*.jpg|All Files (*.*)|*.*||"),this); //选项图片的约定 if(cfd.DoModal()!=IDOK) //判断是否获得图片 {

基于MFC的ActiveX控件开发 (转)

ActiveX 控件是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面及Web应用中.在VC下ActiveX控件的开发可以分为三种,一种是直接用COM的API来开发,这样做显然非常的麻烦,对程序员要求也非常高,因此一般是不予考虑的:一种是基于传统的MFC,采用面向对象的方式将COM的基本功能封装在若干MFC的C++类中,开发者通过继承这些类得到COM支持功能.MFC为广大VC程序员所熟悉,易于上手学习,但缺点是MFC封装的东西比较多,因此用MFC开发出来的控件相对会比较大,因此比较

MFC&Opencv 在Picture控件里显示和处理图像

在VS2005和2008里,我们可以用一个 Solution 来组合几个 Project (每个 Project 基本上只包含一个 Program),当我们要构建一个多Program的应用时(例如一个客户端程序加一个服务器应用程序),利用 Solution 可以将这些 Projects 组合起来.并且共享文件和函数库.通常需要为Solution创建一个主路径,其中包含了有Projects的路径.不过在这篇文章里,我们只构建一个简单的Project,所以在创建MFC的New Project对话框里

MFC 刷新失效的Picture控件

问题描述:如在摄像头显示时,关闭摄像头,此时Picture控件仍然显示最后一帧图像,需要刷新掉,还原Picture控件.或者重复显示两张不同大小的图片时,第二张背景有第一张图片残留. 解决方法1:(最笨的方法) 用对话框背景色来填充控件, CRect rect; GetDlgItem(IDC_ShowImage)->GetClientRect(&rect); GetDlgItem(IDC_ShowImage)->GetDC()->FillSolidRect(&rect2,

MFC中给控件添加变量,DoDataExchange中

DoDataExchange函数其实是一项数据动态绑定技术.比如你在写动态按钮过程中须对按钮添加变量时,怎么添加?控件类已经写好了,其变量是已经固定的.你要添加新的变量就要用到DoDataExchange函数. 你要在对话框的构造函数里面初始化一个变量,再用DoDataExchange函数将它绑定到你的动态按扭中,比如:DDX_Check(pDX, IDC_CHECK1, m_Lesson1);这就是将m_Lesson1(这是一个外部变量,其定义在对话框的构造函数里)绑定到IDC_CHECK1中