winXP+sp3,VC6.0中,采用win32方式编写对话框程序。在对话框上布置好其他控件,如果不拖入ProgressBar控件,则DialogBoxParam创建成功,并能正确显示。但如果拖入该控件则失败,DialogBoxParam(..)返回值为-1,GetLastError()返回0,不知何因?
奇怪的是,这些代码曾经能很好的运行,即能正确创建对话框并显示,现在却有问题。
而采用MFC的向导生成对话框程序,拖入ProgressBar控件,运行良好!
更奇怪的是,在本机的虚拟机winxp+sp3上却不存在此情况。即DialogBoxParam(..)能正确创建对话框并显示
查看MSDN,说需要comCtl32.dll,我的实体机与虚拟机上的该文件大小不一样。怀疑中毒,于是把实体机ghost回来,在实体机中仍然是DialogBoxParam(..)返回值为-1,GetLastError()返回0,不知何因,请大侠及高手指点迷津

解决方案 »

  1.   

    #include <commctrl.h>   
    #pragma comment(lib, "comctl32.lib")   // 初始化的地方加上,比如在窗口回调函数的WM_INITDIALOG消息处理加上这两句
    INITCOMMONCONTROLSEX icc = {sizeof(icc), ICC_PROGRESS_CLASS};  
    InitCommonControlsEx(&icc); 
      

  2.   

    十分感谢VisualEleven(Eleven[兔子党组织部长])您的指点,马上去测试!一会回来向您汇报!
      

  3.   

    真不愧是“钻石”级的大牛!令我想到“牛皮不是吹的,火车不是推的!”,太扎实了!
    不过还是想问一下,部长您是怎么想到这两句的,我InitCommonControlsEx函数的说明,但我曾用regsvr32 commctl32.ocx过