接口函数与接口对话框之间的传值问题 我创建了一个COM接口,里边添加了一个对话框控件,COM接口中一个方法实现对话框,并且向对话框传递一个参数,请问函数中的参数怎么传递给对话框中的函数啊?或是给点什么想法。 希望高手不吝赐教,在此先谢谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很简单啊,接口函数传递一个变量过来,然后赋值到一个变量。再在对话框函数中使用即可啊。例子: 不是MFC,COM API的。private: BSTR m_bstrCustomCaption;STDMETHODIMP CControl::put_Caption(BSTR bstr){ SAFE_FREEBSTR(m_bstrCustomCaption); if ((bstr) && (SysStringLen(bstr) > 0)) m_bstrCustomCaption = SysAllocString(bstr); return S_OK;}这样就在外部获取了参数值。然后对话框:DialogBox(v_hModule,MAKEINTRESOURCE(IDD_ABOUT_DIALOG), m_hwnd, AboutDlgProc);BOOL CALLBACK AboutDlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam);////////////////////////////////////////////////////////////////////////////////////////BOOL CALLBACK AboutDlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam){ switch(Message) { case WM_INITDIALOG: SetCaption(m_bstrCustomCaption); ...... return TRUE; case WM_COMMAND: switch(LOWORD(wParam)) { case IDOK: EndDialog(hwnd, IDOK); break; } break; default: return FALSE; } return TRUE;} 呵呵,知道了,是我大脑没转过弯儿来。 那再问你一个问题就是我接口要传进来一个指针变量类型是fstream的,但是我写成long型的了,然后我内部处理的时候把long型的强制转化为fstream型的,调用接口的时候把fstream型的转化成long型的。这样做会不会有什么问题啊? 看的不怎么明白,你的BSTR m_bstrCustomCaption;是对话框类的成员么?STDMETHODIMP CControl::put_Caption(BSTR bstr)是接口函数,还是对话框的函数? COM接口最好用VARIANT等标准类型,你最好把fstream转成成符合参数的类型,然后再调用接口 [已搞定]将CDC*的SetPixel保存起来 谁知道比尔盖兹的邮件地址啊:?呵呵呵 关于OLE剪贴板的原理 绑定外网IP的问题 vc6.0中我用DAO读写Access数据库时为何出现:'不可识别的数据库格式:e:\DateBase\car.mdb" 错误! 高手请进 如何在View中显示一个文件的内容? 什么是sdk? 谁有在对话框里编写浮动菜单的源代码? [求助]将txt中的数据导入listctrl 谁能讲一讲“数字对齐方式” 关于MFC的函数绘制 CXimage与我自建的CStaticPic类重定义为什么
再在对话框函数中使用即可啊。
例子: 不是MFC,COM API的。
private:
BSTR m_bstrCustomCaption;STDMETHODIMP CControl::put_Caption(BSTR bstr)
{
SAFE_FREEBSTR(m_bstrCustomCaption);
if ((bstr) && (SysStringLen(bstr) > 0))
m_bstrCustomCaption = SysAllocString(bstr); return S_OK;
}这样就在外部获取了参数值。然后对话框:DialogBox(v_hModule,MAKEINTRESOURCE(IDD_ABOUT_DIALOG), m_hwnd, AboutDlgProc);BOOL CALLBACK AboutDlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam);////////////////////////////////////////////////////////////////////////////////////////
BOOL CALLBACK AboutDlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
switch(Message)
{
case WM_INITDIALOG:
SetCaption(m_bstrCustomCaption);
......
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
EndDialog(hwnd, IDOK);
break;
}
break;
default:
return FALSE;
}
return TRUE;
}
看的不怎么明白,你的BSTR m_bstrCustomCaption;是对话框类的成员么?STDMETHODIMP CControl::put_Caption(BSTR bstr)是接口函数,还是对话框的函数?