在不同的窗口类中,不同的类之间需要互相访问,有时需要知道另一个窗口类的指针来调用他的函数,本文介绍两种方法,如下:
//Qt
//方法1
WId ir = (WId)FindWindow(NULL, L"Target");
className *pM = (className*)find(ir);
pM->method();
//方法2
className *pM;
foreach(QWidget *w, qApp->topLevelWidgets())
if (QMainWindow* mainWin = qobject_cast<QMainWindow*>(w)) {
pM = qobject_cast<className*>(mainWin);
}
pM->method();
//MFC中
//方法1
CWnd* hWnd = FindWindow("#32770",NULL);
if (hWnd)
{
hWnd->PostMessage(WM_CLOSE,NULL,NULL);
}
else
{
MessageBox("A0");
}
//方法2
AfxGetApp()->GetMainWnd();//
可参考:https://blog.csdn.net/caoshangpa/article/details/78589776