双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

求教一个关于动态生成子窗口&&按钮的问题

lastrobber lastrobber 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
RT,小弟在做一个单文档的工程,要求根据设置的个数动态创建带有颜色的客户区,并且在每个客户区内动态创建四个按钮。
现在解决了初步的问题,可以动态创建出子窗口,并且可以动态创建出来四个按钮,问题就是,只在第一个子窗口内可以显示,其他的都没有显示。调试了一下午,只能解决到这步了,故求教各位。

下面是我的代码:

if(bIsDraw == true)
{
delete []m_wndUnit; //子窗口指针数组
delete []m_btnUnit; //按钮指针数组
}

CRect rect ;
GetClientRect(rect);

int nTop = rect.top;
int nLeft = rect.left + 20;

int nEquipNum = atoi(m_strEquipNum);
int nRight = rect.right/(nEquipNum) - 20;
int nButtom = rect.bottom/(nEquipNum) - 20;
int nTemp = nRight;
int nbtnNum = 0; //按钮计数

m_wndUnit = new CCreateUnit[nEquipNum]; //nEquipNum为外部传入的客户区数量
m_btnUnit = new CButton[nEquipNum * 4];

for(int i = 0; i < nEquipNum; i++)
{
//画子客户区
CRect rectUnit(nLeft, nTop, nRight, nButtom);
DWORD dwStyle = WS_CHILD | WS_BORDER | WS_TABSTOP | WS_VISIBLE;

m_wndUnit[i].Create( "MFCUnitCtrl" , NULL ,dwStyle , rectUnit , this , NULL ) ;
m_wndUnit[i].ShowWindow( SW_NORMAL ) ;

//在每个客户区生成按钮
CRect rectBtn1(nLeft - 20, nTop, nRight/2 - 20, nButtom/2 - 5);
m_btnUnit[nbtnNum].Create("初始化", WS_VISIBLE|BS_PUSHBUTTON, rectBtn1, &m_wndUnit[i], NULL);
m_btnUnit[nbtnNum].ShowWindow( SW_NORMAL );

CRect rectBtn2(nRight/2, nTop, nRight, nButtom/2 - 5);
m_btnUnit[nbtnNum + 1].Create("运行位置", WS_VISIBLE|BS_PUSHBUTTON, rectBtn2, &m_wndUnit[i], NULL);
m_btnUnit[nbtnNum + 1].ShowWindow( SW_NORMAL );

CRect rectBtn3(nLeft - 20, nButtom/2 + 5, nRight/2 - 20, nButtom);
m_btnUnit[nbtnNum + 2].Create("取样位置", WS_VISIBLE|BS_PUSHBUTTON, rectBtn3, &m_wndUnit[i], NULL);
m_btnUnit[nbtnNum + 2].ShowWindow( SW_NORMAL );

CRect rectBtn4(nRight/2, nButtom/2 + 5, nRight, nButtom);
m_btnUnit[nbtnNum + 3].Create("旁路位置", WS_VISIBLE|BS_PUSHBUTTON, rectBtn4, &m_wndUnit[i], NULL);
m_btnUnit[nbtnNum + 3].ShowWindow( SW_NORMAL );

//变量后续处理
nLeft += nTemp + 20;
nRight += nTemp + 20;
nbtnNum += 4;
}

bIsDraw = true;

RedrawWindow();
...全文
评论 11
收藏 已收藏
分享
返回顶部
lastrobber
VC/MFC 16,551 成员 421,605 内容