| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 784 人关注过本帖
标题:[求助]如何获取这个控件的变量
只看楼主 加入收藏
haochen1991
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-12-11
收藏
 问题点数:0 回复次数:2 
[求助]如何获取这个控件的变量

我做的一个SDI的程序,在View类里面要调用一个函数(如下)
void Eng_SetLegend(CMoMap &map,C_legend &legend)
{
//单步调试时legend值为:C_legend hWnd=???
LPUNKNOWN pUnknown = map.GetControlUnknown();
LPDISPATCH pDispatch = 0;

// QI for the IDispatch pointer
if (pUnknown)
pUnknown->QueryInterface(IID_IDispatch, (void**)&pDispatch);

// Link the legend with the map control
if (pDispatch)
legend.setMapSource(&pDispatch);
//。。。。。。。。。。。。。。

// Release the dispatch pointer
if (pDispatch)
pDispatch->Release();
}
调用代码是:
Eng_SetLegend(m_viewmap,pLegend->m_legend);

map是一个控件的变量在View(这里是FormView)里,legend也是一个控件的变量在一个对话框CLegend里,pLegend是CLegend在View里面的一个指针(没有赋值),对话框CLegend在一个Tab Control里面,Tab Control就跟VC6的工作区的一样嵌套在主窗体中。
现在程序运行有错误,问题出在Eng_SetLegend函数的参数legend得不到对应的控件的变量。

我该怎么做?

[此贴子已经被作者于2006-8-30 10:17:29编辑过]

搜索更多相关主题的帖子: 变量 控件 获取 
2006-08-30 10:16
Bekky
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:354
专家分:0
注 册:2006-5-29
收藏
得分:0 

你说的我还是没有完全明白,你的意思是不是主框架怎么去调用对话框里控件的问题?
如果是这样的话,定义2个变量就可以了。
第一:在主框架里定义对话框的变量,如:m_Dlg;
第二:在对话框里定义控件的变量,如:m_Edit;
m_Dlg.m_Edit就可以把控件变量传过来了。

[此贴子已经被作者于2006-8-30 16:39:40编辑过]


我的编译环境为WinXp + VC 6.0 http://blog..cn/yobo
2006-08-30 16:26
haochen1991
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-12-11
收藏
得分:0 
问题已经解决:
我声明了一个对话框的全局指针对象,在对话框初始化的时候将this指针赋给它,在View类里面就可以直接用了,我前面的那些指针都是空指针,因此会出现这个问题,感谢楼上的鼎立支持和帮助!!!!!!

2006-08-31 08:46
快速回复:[求助]如何获取这个控件的变量
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.076310 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved