SetParent无效!
我用做了一个word插件,插件调用了本地的一个dll,dll中显示了一个CDiloag,
默认CDialog的parent是当前的word窗口。
我想可以切换到其他的word窗口去,使用了SetParent,但是不起作用。是不是什么地方还没有设置对啊?
下面是简单代码:
CWnd cwnd, *cwndParent,*ppcwnd,*cwndReturn;
CString CSTILELE;
cwndParent=cwnd.GetActiveWindow();//当前的word窗口,也就是新的Parent
if ( ! bIsCreate){ //pform是dialog
pform.Create(IDD_W_MAINFORM_DIALOG,NULL);
bIsCreate=TRUE;
}
//设置
cwndReturn=pform.SetParent( cwndParent);//更改父窗口,这里明显看到了返回值是前一个窗口,看似起了作用.
//获得
ppcwnd=pform.GetParent();//竟然和cwndReturn是同一个值,怎么不是新窗口值啊?
if(ppcwnd)
ppcwnd->GetWindowText(CSTILELE);
MessageBox(0,CSTILELE,"eeee",0);
//我不死心又设置一次
cwndReturn=pform.SetParent(cwndParent); //天呐,返回值,竟然和cwndparent是一样的说明设置上了,但是就是不起作用啊
//获得
ppcwnd=pform.GetTopLevelParent();//依旧还是以前的窗体.
if(ppcwnd)
ppcwnd->GetWindowText(CSTILELE);
MessageBox(0,CSTILELE,"eeee",0);