一个奇怪的问题,请高人进来看看
程序是这样的:有窗体Form1,Form2。Form1是主窗体,Form2上有一个Panel控件,Panel控件上又有一个Frame控件,在Frame控件上又有一个button2;点击Form1上面的一个按钮button1,调出Form2,使用以下调出语句:
TForm2 *kkk=new TForm2(this);
kkk->ShowModal();
delete ScanModel;
然后在Form2中点击button2另创建了线程Thread1,此时,就有问题了,在Thread1中竟然无法使用Form2->Handle,也就是得不到Form2的句柄,但是使用this->Parent->Parent->Handle就可以。在Thread1中又创建了Thread2,在Thread2中也无法使用Form2->Handle,并且在Thread2中也不能使用在Form2.h中定义的成员变量long bbb,即无法使用Form2->bbb,后来我在Form2.h中将bbb定义成全局变量,在Thread2中也无法操作它(bbb++)。
但是,所有以上的问题在没有Form1的情况下,也就是如果单独将Form2作为主窗体,不用Form1来调用就不会出现。我考虑是不是上面列出的三句调出Form2的语句对程序有影响。
我不知道我的问题说清楚了没有,请高人仔细看看,帮我想想,如果感觉问题不清楚,可以跟帖问我,也可以QQ 15820970。