hur.cn - 华软网

 热门搜索

VC++中属性页操作的问题

  作者:未知    来源:网络    更新时间:2011/9/7
属性页中如何得到主窗口控件(CComboBox)的返回值。我要的是反回GetCurSel()的值。如何得到主窗口一个控件的值?
---华软 网友回答---
使用 AfxGetApp()->GetMainWnd() 获得主窗口句柄,

也可以直接传入控件指针。

---华软网友回复---
属性页创建的时候保存主窗口的指针到一个变量m_hMainWnd,然后就可以通过m_hMainWnd来访问Combobox了
---华软网友回复---
可能是
((CComboBox*)GetParent()->GetDlgItem(IDC_COMBO1))->GetCurSel();
或者
((CComboBox*)GetParent()->GetParent()->GetDlgItem(IDC_COMBO1))->GetCurSel();

---华软网友回复---
3楼,第一个方法试过,不行了,编译不会错,但运行会错。谢谢各位,我再试试你们每个人的方法。
---华软网友回复---
jacky_qiu,谢谢你!虽然我没看懂,但你的第二个正确,能够正常运行,给你分!上面还有两位,你们的答案我还是不太会,不过还是谢谢!
---华软网友回复---
jacky_qiu还是想问一下,能不能解释一下你的答案呢?就第二条,我的功力不够。
---华软网友回复---
哈哈,没关系,我开始也是这样,看到这些就头疼,慢慢就会好的啦。
凡事都有个过程。

1. GetParent()表示获取你的窗口的父窗口指针。
2. GetParent()->GetParent() 表示获取你的窗口的父窗口的父窗口指针,也就是爷爷窗口指针啦。
3. 你的爷爷窗口指针调用GetDlgItem,也就是:
   GetParent()->GetParent()->GetDlgItem(IDC_COMBO1)
   就可以获得爷爷窗口上的combobox控件的指针啦。
4. 这个控件指针必须强制转换为 CComboBox* 类型,那系统才会知道这是个CComboBox的指针,
    你下面才能调用CComboBox的成员函数  GetCurSel
    控件指针: GetParent()->GetParent()->GetDlgItem(IDC_COMBO1)
    强制转换: (CComboBox*)GetParent()->GetParent()->GetDlgItem(IDC_COMBO1)
5. 之后再来个大括号包围这个强制转换后的指针再调用GetCurSel就可以了
   (强制转换后的指针)-> GetCurSel();

啰嗦了,希望能看懂!阿弥陀佛!      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。