求教一个关于动态生成子窗口&&按钮的问题
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();
现在解决了初步的问题,可以动态创建出子窗口,并且可以动态创建出来四个按钮,问题就是,只在第一个子窗口内可以显示,其他的都没有显示。调试了一下午,只能解决到这步了,故求教各位。
下面是我的代码:
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();
...全文
相关推荐
java实现点击按钮事件弹出子窗口
主要为大家详细介绍了java实现点击按钮事件弹出子窗口,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
qt--主窗口中按钮弹出子窗口,并把主窗口信号发送给子窗口
qt--主窗口中按钮弹出子窗口,并把主窗口信号发送给子窗口
winform用tabcontrol切换mdi子窗口及为tabcontrol的page添加关闭按钮
利用tabcontrol实现winform子窗口切换,且为tabpage添加关闭
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
今天小编就为大家分享一篇python3 tkinter实现点击一个按钮跳出另一个窗口的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
单击按钮在固定位置创建子窗口,单击父窗口的时自动隐藏子窗口.
单击按钮在固定位置创建子窗口,单击父窗口的时自动隐藏子窗口



