MFC动态创建控件

mtj520 2011-10-25 01:27:51
我做了一个对话框程序,而这个主对话框通过DLL的形式再调用了2个不同的对话框。2个对话框分别动态在自己的对话框里绘制了按钮以及静态文本。而只要我先打开A对话框,按钮和文本绘制是没问题的。再没有关闭下主程序情况下,再打开B对话框,那么就会出现绘制的问题。就是所有按钮的位置都表示出来了,而我再按钮上加载的图片看不见,静态文本也没有我要的字符值!如果我用鼠标点击B对话框里某一个按钮,那么图片这个时候就加载进来了!如果先打开B对话框,而A出现的情况是一样的。如果我在A或B对话框里的标签不用指针动态创建出来的话,直接用变量的形式,或者从资源里拖20个标签的话,也不会出现这个问题。开始以为是2个对话框里面的静态文本的ID冲突了,但是2个对话框根本就是不同的。而且我也测试过了,就算ID我改成不一样的,也是不行的。下面贴一段我绘制的代码,2个对话框都是一样的!
CPathButton *m_buttons[BTN_TOTAL_NUM]; //按钮
CStatic *m_statics[BTN_TOTAL_NUM]; //标签

//绘制按钮
CString sBtnName;
sBtnName.Format(_T("Button%d"),nFirBtnIndex+i);
m_buttons[nFirBtnIndex+i] = new CPathButton;
m_buttons[nFirBtnIndex+i]->Create(NULL,BS_DEFPUSHBUTTON|WS_VISIBLE|WS_CHILD,
CRect(x+430,y-20,x+BTN_WIDTH + 430,y+BTN_HEIGHT-20),this,nFirBtnID+i);


if (m_MovieTemp[nFirBtnIndex+i].bVideoPath)
{
m_buttons[nFirBtnIndex+i]->m_strImagePath = m_strNoMoviePath;
}
else
{
m_buttons[nFirBtnIndex+i]->m_strImagePath = m_MovieTemp[nFirBtnIndex+i].strImgPath;
m_buttons[nFirBtnIndex+i]->m_strImagePath2 = m_strNoImg;
}

//绘制标签
m_statics[nFirBtnIndex+i] = new CStatic;
CString strTemp;
strTemp = m_MovieTemp[nFirBtnIndex+i].strName;
m_statics[nFirBtnIndex+i]->Create(strTemp,WS_VISIBLE|WS_CHILD|SS_CENTER,
CRect(x+430,y+120,x+BTN_WIDTH+430,y+STA_HEIGHT+120),this,nFirStaID+i);
m_Button[nFirBtnIndex+i].Buttonid=nFirBtnID+i;

m_hBrush[nFirBtnIndex+i] = GetBkBrush( GetSafeHwnd(), FIRST_STARIC_ID+i, m_Bkgnd );
m_statics[nFirBtnIndex+i]->SetFont(&m_fontName);
...全文
423 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mtj520 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jennyvenus 的回复:]
CPathButton 是全局的还是成员变量?
[/Quote]
成员变量。我是2个不同的DLL。只是2个DLL。做的事差不多!
mtj520 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fandh 的回复:]
是不是以前创建的根本没有释放就继续创建了?
[/Quote]
我是2个DLL。根本就不是在一个工程里面的,貌似这个没关系把!
用户 昵称 2011-10-25
  • 打赏
  • 举报
回复
CPathButton 是全局的还是成员变量?
fandh 2011-10-25
  • 打赏
  • 举报
回复
还有是不是一些GDI资源没有释放造成的!
fandh 2011-10-25
  • 打赏
  • 举报
回复
是不是以前创建的根本没有释放就继续创建了?
mhwer99 2011-10-25
  • 打赏
  • 举报
回复
在dll工程属性的常规项中设置:在静态库中使用mfc看看

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧