我建了一个win32 application,一个典型的hellow world应用程序。并通过菜单打开一个对话框,
如果对话框中放置了ip address control 或者list control、tree control,则无法显示对话框,调用
DialogBox(hInst,(LPCTSTR)IDD_SERVDLG,hWnd,(DLGPROC)ConfServDlg)函数出错,错误值为1407,
如果没有这些控件,则调用DialogBox()函数成功,显示对话框。
请问原因在哪里?
但是如果用mfc,则可以在对话框中显示ip address control 、list control等控件,为什么?
如果想在sdk程序中的对话框中调用这样的控件,该怎样处理,能否给个例子?
谢谢高手指点!!在线等待!

解决方案 »

  1.   

    调用InitCommonControls(Ex)以注册ipaddress等公用控件的窗口类
      

  2.   

    getdlgitem(id)可以得到控件句柄,控制这些控件可通过向控件发消息,具体消息请看msdn中windows common controls想得到该控件产生的事件,可通过控件所在的窗口的窗口函数中的wm_notify,具体附加参数的意义也可看msdn
      

  3.   

    问题是,我用DialogBox()函数调用对话框失败,怎么能用getdlgitem(id)得到控件呢?
    还有我在对话框中添加的ip address control怎么能用InitCommonControls()函数注册呢?是用控件的id吗?怎么联系?
      

  4.   

    INITCOMMONCONTROLSEX im;
    im.dwSize = sizeof(INITCOMMONCONTROLSEX);
    im.dwICC = ICC_INTERNET_CLASSES;
    InitCommonControlsEx(&im);
      

  5.   

    谢谢,好用啦!马上送份!呵呵谢谢!
    还有个小小的问题,怎么让对话框响应wm_keydown消息呢,我在对话框的消息处理回调函数中
    设置了wm_keydown的处理,但是没反应,能否告知什么原因?谢谢
      

  6.   

    handle WM_KEYDOWN in PreTranslateMessage()