MFC如何在tabcontrol控件上动态创建多个checkbox按钮

丿starRiver 2017-05-02 10:39:29
详细问题是这样的:
新建了一个基于formview的工程;
在对话框中拖拽了一个tabcontrol控件;
又把该控件关联了5个对话框;
问题出现了!!!!!!!!!!!!
在第一个对话框类的OnInitdialog()函数中动态创建多个checkbox没有问题,可以正常显示;
在第二个对话框类的OnInitdialog()函数中又动态创建多个checkbox,程序崩溃!发生访问冲突!
什么情况,求大神解救!!
...全文
688 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohuh421 2017-05-03
  • 打赏
  • 举报
回复
dlg.SetwindowPos 看到你这句, 就知道基本上你的程序有问题了. tabbar的每个子窗口最好是new出来, 然后create, 然后再设置位置和show 不知道你是怎么做的. 最好是贴出崩溃时的堆栈信息.
赵4老师 2017-05-02
  • 打赏
  • 举报
回复
引用 9 楼 ykiwmy 的回复:
这个在第二个对话框OnInitDialog动态创建按钮后,第一个对话框的实例句柄地址就变了,为什么,求解答!
试试数据断点:
#include <time.h>
#include <stdlib.h>
#include <windows.h>
int main() {
    int a,b[11];//本来是b[10],为判断哪句越界,故意声明为b[11]

    srand((unsigned int)time(NULL));//按两次F11,等黄色右箭头指向本行时,调试、新建断点、新建数据断点,地址:&b[10],字节计数:4,确定。
    while (1) {//按F5,会停在下面某句,此时a的值为10,b[10]已经被修改为对应0..4之一。
        b[(a=rand()%11)]=0;
        Sleep(100);
        b[(a=rand()%11)]=1;
        Sleep(100);
        b[(a=rand()%11)]=2;
        Sleep(100);
        b[(a=rand()%11)]=3;
        Sleep(100);
        b[(a=rand()%11)]=4;
        Sleep(100);
    }
    return 0;
}
丿starRiver 2017-05-02
  • 打赏
  • 举报
回复
引用 10 楼 cvbtvbwu 的回复:
可以联系我,帮你调试一下。
加qq行不,我的是1293089043
叶恭介叶恭介 2017-05-02
  • 打赏
  • 举报
回复
可以联系我,帮你调试一下。
丿starRiver 2017-05-02
  • 打赏
  • 举报
回复
这个在第二个对话框OnInitDialog动态创建按钮后,第一个对话框的实例句柄地址就变了,为什么,求解答!
丿starRiver 2017-05-02
  • 打赏
  • 举报
回复
在线等答案啊
丿starRiver 2017-05-02
  • 打赏
  • 举报
回复
引用 6 楼 cvbtvbwu 的回复:
在对话框中拖拽了一个tabcontrol控件; 又把该控件关联了5个对话框; 为什么要关联5个对话框?只关联一个,其它通过指针访问不行么
因为每个对话框上显示的内容不一样啊,通过显示一个,隐藏其他来实现切换
叶恭介叶恭介 2017-05-02
  • 打赏
  • 举报
回复
在对话框中拖拽了一个tabcontrol控件; 又把该控件关联了5个对话框; 为什么要关联5个对话框?只关联一个,其它通过指针访问不行么
丿starRiver 2017-05-02
  • 打赏
  • 举报
回复
在线等答案啊
丿starRiver 2017-05-02
  • 打赏
  • 举报
回复
引用 3 楼 chengbar 的回复:
CButton* pbtn = new CButton() pbtn->Create() pbtn->ShowWindow() 应该没问题,注意创建checkbox的id别重复
ID没有重复,程序是死在dlg.SetwindowPos这里的,在第二个对话框OnInitDialog动态创建按钮后,第一个对话框的实例句柄地址就变了,为什么,该怎么用!
sevancheng 2017-05-02
  • 打赏
  • 举报
回复
CButton* pbtn = new CButton() pbtn->Create() pbtn->ShowWindow() 应该没问题,注意创建checkbox的id别重复
丿starRiver 2017-05-02
  • 打赏
  • 举报
回复
再顶
丿starRiver 2017-05-02
  • 打赏
  • 举报
回复
自顶!

15,980

社区成员

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

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