::GetDlgItem调用 窗口控件遇到的中断 (自己遇到的问题,已被解决)
来源:互联网 发布:sql server 2016 sn 编辑:程序博客网 时间:2024/05/16 19:22
BOOL CDlgShape::OnInitDialog()
{
CDialog::OnInitDialog();
//CString strWFSVersion = _T("1.0.0");
//CString strWFSRequestMethod = _T("GET");
//CString strWFSConnectionType = _T("WFS");
HWND hwnd = this->m_hWnd;
//ASSERT(hwnd != 0);
((CComboBox*)GetDlgItem(IDC_COMBO_SHAPESTATUS))->ResetContent();
((CComboBox*)GetDlgItem(IDC_COMBO_SHAPESTATUS))->AddString("ON");
//((CComboBox*)GetDlgItem(IDC_COMBO_SHAPESTATUS))->AddString("OFF");
//m_SHAPEStatus.AddString("OFF"); 控件变量用法
((CComboBox*)::GetDlgItem(hwnd,IDC_COMBO_SHAPESTATUS))->AddString("OFF");
((CComboBox*)GetDlgItem(IDC_COMBO_SHAPESTATUS))->SetCurSel(1);
代码如上所示,若用蓝色的代码,编译无问题,但是用了红色部分代码,会产生一个中断,ASSERT(::IsWindow(m_hWnd))
应该是父窗口句柄无法找到窗口的问题,但是hwnd确实是有值的,为何这个用法会产生这个中断?
如果说窗口未创建的话,红色部分的代码我曾在 一个button的事件函数里用过,也是这个问题,但是用控件变量却是可以的
有高手知道是为何吗??
1.
::GetDlgItem(hwnd,IDC_COMBO_SHAPESTATUS))这样得到是窗口句柄,不能直接转化为CComboBox*.
你要调用函数转换.
2.
一个是CWnd* ,一个是HWND两者不能强制转换
3.
HWND hwnd = ::GetDlgItem(this->GetSafeHwnd(),IDC_COMBO_SHAPESTATUS);
CComboBox* combo = (CComboBox*)FromHandle(hwnd);
combo->AddString("OFF");
同理:
//以下用法有错,不能通过句柄获取内容,错误为找不到父窗口句柄,用下面方法可以
//HWND hwndwms = WMS_Page.m_hWnd;
//CEdit* pEdit = (CEdit*)::GetDlgItem(hwndwms,IDC_EDIT_WMSNAME);
//if (pEdit)
//{
// pEdit->GetWindowText(strLayerName);//LAYER
//}
//此种方法正确
//HWND hwnd = ::GetDlgItem(hwndwms,IDC_EDIT_WMSDATA);
//CEdit* combo = (CEdit*)FromHandle(hwnd);
//combo->GetWindowText(strWMSData);
- ::GetDlgItem调用 窗口控件遇到的中断 (自己遇到的问题,已被解决)
- DataBinding遇到的问题,已解决
- 【已解决】VB Active控件使用中遇到的无法认证问题
- 自己遇到的问题
- 遇到Unbuntu dpkg 被中断的问题
- ubuntu的系统升级遇到的问题和解决方案(已解决)
- Java读写文件遇到的问题(已解决)
- Java读写文件遇到的问题(已解决)
- 域名映射时遇到的问题(已解决)
- 打印遇到的怪问题。实在郁闷(已解决)
- IIS服务器遇到的一个问题(已解决)
- 使用javax.swing.Timer遇到的问题(已解决)。
- win8.1 下activex编程遇到的问题之 “控件已加载 但对DllRegisterServer的调用失败”
- 自己遇到的一些问题
- 自己分页遇到的问题
- 自己遇到的python3问题
- 自己同学遇到的问题
- 自己工作中遇到的问题及解决总结
- sql递归查询问题
- java自学路线图
- wince 6.0 命令行编译
- 敏捷需求分析
- WiMAX Bootstrap Security 中用到的 AES-CCM 算法 C 语言源码
- ::GetDlgItem调用 窗口控件遇到的中断 (自己遇到的问题,已被解决)
- How do I define preprocessor macros in the xcode project settings
- 五。。问题解决之道
- 敏捷开发
- Windows时间函数大全
- 配置虚拟嵌入式环境
- windows自动关机
- 报表样式模板 xsl
- QTP中的WebTable中的GetRowWithCellText方法改进