winXP+sp3,VC6.0中,采用win32方式编写对话框程序。在对话框上布置好其他控件,如果不拖入ProgressBar控件,则DialogBoxParam创建成功,并能正确显示。但如果拖入该控件则失败,DialogBoxParam(..)返回值为-1,GetLastError()返回0,不知何因?
奇怪的是,这些代码曾经能很好的运行,即能正确创建对话框并显示,现在却有问题。
而采用MFC的向导生成对话框程序,拖入ProgressBar控件,运行良好!
更奇怪的是,在本机的虚拟机winxp+sp3上却不存在此情况。即DialogBoxParam(..)能正确创建对话框并显示
查看MSDN,说需要comCtl32.dll,我的实体机与虚拟机上的该文件大小不一样。怀疑中毒,于是把实体机ghost回来,在实体机中仍然是DialogBoxParam(..)返回值为-1,GetLastError()返回0,不知何因,请大侠及高手指点迷津
#include <commctrl.h>
#pragma comment(lib, "comctl32.lib")
// 初始化的地方加上,比如在窗口回调函数的WM_INITDIALOG消息处理加上这两句
INITCOMMONCONTROLSEX icc = {sizeof(icc), ICC_PROGRESS_CLASS};
InitCommonControlsEx(&icc);