RT
自己定义了一个函数
void myfun()
{
   int check=((CButton *)GetDlgItem(hwnd,IDC_CHECK))->GetCheck();
}
编译能通过,但运行后出错,请问怎么解决呢?

解决方案 »

  1.   

    你GetDlgItem()返回的指针有效吗?
      

  2.   

    hwnd是全局变量,在初始化函数里面就把对话框的句柄传给hwnd了,应该有效吧??
      

  3.   

    看了你的代码,你还没分清SDK跟MFC的区别
    CButton    *pButton    =    (CButton    *)GetDlgItem(checkbox的ID);   
    int i = pButton->GetCheck();i得到的值就是checkbox的选定值;
      

  4.   

    又句柄又指针的,不行,mfc把句柄封装到类中了,所以一般用不到句柄了,用指针就行了
    void myfun()
    {
      int check=((CButton *)GetDlgItem(IDC_CHECK))->GetCheck();
    }
      

  5.   

    hwnd这个值是哪来的
    获取自己的控件不用制定句柄
    另外你在哪调用的这个函数
    要确定调用时对话框已经准备好了
      

  6.   

    GetDlgItem(hwnd,IDC_CHECK)这个返回的是HWND,不能直接转换成CButton*.
    一定要混用句柄和mfc对象,要:
    int check=((CButton*)(CWnd::FromHandle(GetDlgItem(hwnd,IDC_CHECK)))->GetCheck();