我现在写的是一个对话框程序
调用对话框的函数是 :DialogBoxParam()我的使用是
DialogBoxParam(NULL,MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgProc,0);   
但这样的话有很多东西用不了,例如:COMBO BOX的 date选项 添加数据不能显示因为第一个参数我设置的是NULL,请问怎么在这里获取主程序的句柄啊?我是将此函数加在
BOOL CdataApp::InitInstance()
{}
里的。

解决方案 »

  1.   

    传一个主窗口的this指针进去是最简单的
    或者在对话框中使用FindWindow EnumWindow等等API来获取句柄 
      

  2.   

    BOOL CdataApp::InitInstance() 
    {} 
    你在这里面写你的对话框程序干什么呢?
    你是写在主对话框创建之前还是之后呢?如果是之前,主对话框还没有呢,如果是之后,对不起,此时住对话框已经over了。
      

  3.   


    你没明白我的意思
    我只是在这里写了个显示对话框 :DialogBoxParam(NULL,MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgProc,0);  
      

  4.   

    DialogBoxParam(NULL,MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)DlgProc,0);  
    吧函数第一个参数“null”改成全局的实例“hInst”就OK 。第一个参数不是句柄。
      

  5.   

    你的问题是:
    因为第一个参数我设置的是NULL,请问怎么在这里获取主程序的句柄啊? 
    所以我不需要明白你的意思,只是告诉你,你在OnInitInstance中是无法实现你的目标的,你明白我的意思吗?
      

  6.   

    获得主应用程序:AfxGetApp();
    获得主窗口:AfxGetApp()->GetMainWnd()或者AfxGetMainWnd()