我登記我的類在下面的方法:BringWindowToTop甚至沒有工作
BOOL CNDSClientDlg::InitInstance()
{
//Register Window Updated on 16th Nov 2010, @Subhen
// Register our unique class name that we wish to use
WNDCLASS wndcls;
memset(&wndcls, 0, sizeof(WNDCLASS));
wndcls.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
wndcls.lpfnWndProc = ::DefWindowProc;
wndcls.hInstance = AfxGetInstanceHandle();
wndcls.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wndcls.lpszMenuName = NULL;
//Class name for using FindWindow later
wndcls.lpszClassName = _T("CNDSClientDlg");
// Register new class and exit if it fails
if(!AfxRegisterClass(&wndcls)) // [C]
{
return FALSE;
}
}
,然後調用的InitInstance方法和類的構造函數創建窗口:
CNDSClientDlg::CNDSClientDlg(CWnd* pParent /*=NULL*/)
: CDialog(CNDSClientDlg::IDD, pParent)
{
InitInstance();
HWND hWnd;
hInst = AfxGetInstanceHandle(); // Store instance handle in our global variable
hWnd = CreateWindow(_T("CNDSClientDlg"), "NDS", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInst, NULL);
}
現在在我的其他應用程序我發現窗口,並試圖把頂部:
編輯 能帶來newlyCreated窗戶用下面的代碼
CWnd *pWndPrev = NULL;
CWnd *FirstChildhWnd = NULL;
pWndPrev = CWnd::FindWindow(_T("CNDSClientDlg"),NULL);
if(pWndPrev != NULL)
{
//pWndPrev->BringWindowToTop();
WINDOWPLACEMENT wndplacement;
pWndPrev->GetWindowPlacement(&wndplacement);
wndplacement.showCmd = SW_RESTORE;
pWndPrev->SetWindowPlacement(&wndplacement);
pWndPrev->SetForegroundWindow();
FirstChildhWnd = pWndPrev->GetLastActivePopup();
if (pWndPrev != FirstChildhWnd)
{
// a pop-up window is active, bring it to the top too
FirstChildhWnd->GetWindowPlacement(&wndplacement);
wndplacement.showCmd = SW_RESTORE;
FirstChildhWnd->SetWindowPlacement(&wndplacement);
FirstChildhWnd->SetForegroundWindow();
}
我能找到窗口pWndPrev
不爲空,但它不是把我的應用程序前。我需要註冊任何其他類而不是CNDSClientDlg。我想把我的MFC應用程序置頂。
@cbranch,@FrédéricHamidi,感謝這是Workinng。但是這會產生一個新的空白窗口,而不是我的跑窗。我認爲這是因爲創建窗口。我需要顯示我的應用程序不是新窗口 – Simsons 2010-11-17 07:25:54
@Subhen,你的意思是你在其他應用程序中創建了一個具有相同類名的窗口? – 2010-11-17 07:28:48
我不太確定什麼是相同的類名。但是,我的MFC應用程序中有多個類(對話框),我正在使用其中的一個,CNDSClientDlg – Simsons 2010-11-17 07:32:05