大家好,我现在在用一个OCX控件。我把它加载在主对话框中使用没有问题。但是我现在想在主对话框中将该控件的地址,传入到非窗口类的该控件变量中。使用出现了错误。报错位置是:void AFX_CDECL CWnd::InvokeHelper(DISPID dwDispID, WORD wFlags, VARTYPE vtRet,
void* pvRet, const BYTE* pbParamInfo, ...)
{
ASSERT(m_pCtrlSite != NULL); // not an OLE control (not yet, at least)
{请问大家这个问题应该如何解决啊?我同样试了下CEdit控件,这个是没有问题的。我这个OCX控件是第三方的
void* pvRet, const BYTE* pbParamInfo, ...)
{
ASSERT(m_pCtrlSite != NULL); // not an OLE control (not yet, at least)
{请问大家这个问题应该如何解决啊?我同样试了下CEdit控件,这个是没有问题的。我这个OCX控件是第三方的
解决方案 »
- 为什么好多人把Visual Studio 安装在C盘
- 背景贴图的一个问题~~
- 请问如果在win98下频繁的开关串口是不是会有问题?
- 请教在VC7下使用Sql Server的DB_LIBARY,步骤是怎样?
- richeditctrl存盘的问题?
- 程序在DEBUB下运行良好,在RELEASE版的优化配置Maximize Speed下出错!
- 菜鸟问题:怎样取得一个bmp文件的HDIB?
- 基于对话框的程序中, 如何判断鼠标起时落在一个控件的上面???
- 怎么用INSTALLSHIELD制作的安装程序只有一个SETUP文件?
- mfc 对话框能播放背景透明的flash吗?
- 技术问题?200分求一工具,up有分,走过路过进来看看
- 对话框上重绘了Button,拉伸对话框后Button上位图就乱了,怎么回事
如果是传地址过去应该是不会有问题,除非你传了以后,把对话框上的控件给销毁了或者整个对话框都销毁了。还有一个问题,你既然有主对话框的类,干嘛要传控件的指针啊? 干脆直接把主对话框的指针传过去不就行了么?我就怕你是传了一个指针过去,然后在非对话框中使用Creat创建控件,但是又没有主对话框的指针作为父窗口,你就使用了this指针(非对话框的指针)
结果让控件的父窗口成了一个不是窗口的东西,那样肯定不行的。你要是传主对话框指针(pDlg)过去,那就好了,你可以使用CMyCtrl* m_pCtrl = (CMyCtrl*)pDlg->GetDlgItem(CTRL_ID)取得控件的窗口。然后再调用m_pCtrl->Creat(......pDlg,......); //父窗口设定为Dialog窗口。
当然这样做还要考虑时机的问题,看Dialog是否已经初始化完了才能这么做。