我用vs直接创建的基于对话框的工程,生成的对话框有个ID,我在别的新建类里要用到对话框中的函数,我在那个类里引入了对话框类的头文件,之后编译就报错了,说,对话框的ID没有声明,怎么回事啊这是?
解决方案 »
- 线程发消息给控件,怎么响应这个消息呢!!!
- 图片的坐标问题???
- 关于 CMyProperty类的问题:
- 怎样使一个单文档界面一上来就是全屏呢??(MFC)
- 250分 求 jeffrey richter 《advanced windows》第三版配套光盘上的源码
- 请教一下远程图形登陆软件的原理?
- 自定义消息,编译错误,Help!
- 为什么sheet.ModifyStyle(0,WS_MINIMIZEBOX)不能为模式属性单添加一个最小化按钮?
- mfc消息映射声明问题DECLARE_MESSAGE_MAP()
- help me!!!!!!!?
- 根据词库把句子分成一个个词
- VC++的一个小问题,天天在线等
// VideoDlg.h : 头文件
//#pragma once
#include "ocx1.h"
#include "vsplayerctrl1.h"
#include "EasySize.h"
// CVideoDlg 对话框
class CVideoDlg : public CDialog
{
// 构造
public:
CVideoDlg(CWnd* pParent = NULL); // 标准构造函数// 对话框数据
enum { IDD = IDD_VIDEO_DIALOG }; void RecvEvent(char *recvBuf) ;
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 void InitVideo() ; DECLARE_EASYSIZE
// 实现
protected:
HICON m_hIcon; // 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg void OnSize(UINT nType, int cx, int cy) ;
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
COcx1 classA;
COcx1 classB;
COcx1 classD;
CVsplayerctrl1 classE;
COcx1 classF;
CVsplayerctrl1 classT;
DECLARE_EVENTSINK_MAP()
void DoubleClickClassA(short nButton, short nShiftState, long fX, long fY);
void DoubleClickClassB(short nButton, short nShiftState, long fX, long fY);
void DoubleClickClassD(short nButton, short nShiftState, long fX, long fY);
void ClickClassE();
void DoubleClickClassF(short nButton, short nShiftState, long fX, long fY);
void ClickClassT();
afx_msg void OnBnClickedEPre();
afx_msg void OnBnClickedELat();
afx_msg void OnBnClickedTPre();
afx_msg void OnBnClickedTLat();
};
之后我想在我的MySocket.cpp种调用#include "StdAfx.h"
#include "MySocket.h"#include <fstream>#include "VideoDlg.h"using namespace std ;
错误提示:
error C2065: “IDD_VIDEO_DIALOG”: 未声明的标识符我刚才看了,和工程名字一样的那个类,也引用了VideoDlg.h这个文件,那个就没有错,呵呵
1>c:\documents and settings\administrator\my documents\visual studio 2005\projects\test\test\a.cpp(13) : error C2352: 'CtestDlg::OnBnClickedOk' : illegal call of non-static member function根据你的说明 我测试了下 错误类型应该和你的一样:
解决方法:
你添加的类 函数声明如下
void 你的类::函数名(dlg 对象 )
{
进行调用吧。
}
我是直接把IDD_VIDEO_DIALOG改成它得真实值,具体值你可以到resource.h查看
我添加的类是socket类,在OnReceive函数中项调用dlg类中的butten函数,结果调用不了
那现在我应该怎么改呢?谢谢你了,这么麻烦给我弄,呵呵!
比如说classA和classB互相包含了可以在classA的头文件里申明一下classB
在classA的cpp文件里引用classB的头文件classB同样这么做,倒是可以解决问题。
不过我觉得你先可以试试加上 #include resource.h
可能是没有包含资源文件的申明
资源文件中有了#define IDD_VIDEO_DIALOG 102
我决的不应该啊,呵呵
错误:
File : f:\dd\vctools\vc7libs\ship\atlmfc\include\afxwin1.inl
Line : 24
这个怎么解释一下啊?