char a[100]={0};
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{ HWND hWnd=NULL;
 switch (message)
 {
 case WM_INITDIALOG:
 return TRUE; case WM_COMMAND:
 if (LOWORD(wParam) == IDC_ok1 || LOWORD(wParam) == IDCANCEL)  
{
 GetDlgItem(hWnd,IDD_DIALOG1);
 GetDlgItemText( hWnd,IDD_DIALOG1, a, 10 ); //GetWindowText(IDC_gamekind,a,strlen(a));
 MessageBox(NULL,a,"ceshi",IDOK);
 //GetDlgItem(hWnd.IDD_DIALOG1)->m_hWnd;
 MessageBox(NULL,a,a,IDOK);
 EndDialog(hDlg, LOWORD(wParam));
 return TRUE;
 }
 break;
 }
   return FALSE;
}这样为什么a是空的?MessageBox用来查看a的值

解决方案 »

  1.   

    GetDlgItemText( hWnd,IDD_DIALOG1, a, 10 );用控件的ID,别用对话框的ID
      

  2.   

    用不用MFC, 你Edit都有一个ID,在Edit的属性里面看如果你没改就应该是 IDC_EDIT1,用那个ID替换IDD_DIALOG1
      

  3.   

    我已经替换了啊:LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    { HWND hWnd=NULL;
    switch (message)
    {
    case WM_INITDIALOG:
    return TRUE; case WM_COMMAND:
    if (LOWORD(wParam) == IDC_ok1 || LOWORD(wParam) == IDCANCEL) 
    {
    GetDlgItem(hWnd,IDD_DIALOG1);
    GetDlgItemText( hWnd,IDC_gamekind,b,10 );

    //GetWindowText(IDC_gamekind,a,strlen(a));
    MessageBox(NULL,b,"ceshi",IDOK);

    //GetDlgItem(hWnd.IDD_DIALOG1)->m_hWnd;
    MessageBox(NULL,b,b,IDOK);
    EndDialog(hDlg, LOWORD(wParam));
    return TRUE;
    }
    break;
    }
        return FALSE;
    }
    b定义为全局变量 char b[100];
      

  4.   

    还有就是我现在双击对话框,原来是出现对话框编辑器,现在出现mfcclasswizard,怎么改回去?
      

  5.   

    第二个不知道第一个
    GetDlgItemText( hWnd,IDC_gamekind,b,10 ); 把hWnd 换成 hDlg
      

  6.   

    简直乱套,那么简单的API你都不会调GetDlgItem 是用来获取控件句柄的,不能用来获取对话框句柄
    你的hWnd始终为NULL
      

  7.   

    能解决一下第2个问题吗:我现在双击对话框,原来是出现对话框编辑器,现在出现mfcclasswizard,怎么改回去?