jackadandy
驱动牛犊
驱动牛犊
  • 注册日期2004-03-04
  • 最后登录2016-01-09
  • 粉丝1
  • 关注1
  • 积分5分
  • 威望30点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
阅读:1858回复:2

在dll中对话框上的进度条不生效

楼主#
更多 发布于:2005-07-12 11:51
  在dll中的一个函数caculate中生成一个对话框
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CdllDialog dlldlg;
dlldlg.DoModal();

在CdllDialog定义了进度条CProgressCtrl m_prg;


void CdllDialog::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CdllDialog)
    DDX_Control(pDX, IDC_PROGRESS1, m_prg);
    //}}AFX_DATA_MAP
}

函数
caculate()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CdllDialog dlldlg;
dlldlg.DoModal();

int iMaxCountTestCommand=120;
dlldlg.m_prg.SetRange(0,iMaxCountTestCommand);
dlldlg.m_prg.SetPos(iMaxCountTestCommand*10/100);
..............................
}

在应用程序中调用caculate函数,只显示了对话框,进度条没起作用,怎么回事啊?
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2005-07-31 10:22
刷新一下试试?比如invalid()
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
maqian
驱动中牛
驱动中牛
  • 注册日期2002-08-07
  • 最后登录2014-09-16
  • 粉丝2
  • 关注1
  • 积分12分
  • 威望120点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-31 21:28
DoModal是显示模式对话框函数.函数结束,对话框也消失了。所以对DoModal之后的和窗口相关代码,你是看不到它起作用的。
五花马,千金裘,呼儿将出换美酒。 我不喝酒,喝可乐。
游客

返回顶部