程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> VC完成A過程窗口嵌入到B過程窗口中顯示的辦法

VC完成A過程窗口嵌入到B過程窗口中顯示的辦法

編輯:關於C++

VC完成A過程窗口嵌入到B過程窗口中顯示的辦法。本站提示廣大學習愛好者:(VC完成A過程窗口嵌入到B過程窗口中顯示的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是VC完成A過程窗口嵌入到B過程窗口中顯示的辦法正文


本文經由過程一個Demo示例講述把A運用法式嵌入到B運用法式中顯示的辦法。

重要代碼以下:

//在B運用啟動時創立A過程
CreateProcess(_T("A.exe"),NULL,NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,NULL,NULL);
Sleep(30);
HWND hWndChild = FindWindow(_T("AAA"),_T("AAA"));
while(!hWndChild)
{
  hWndChild = FindWindow(_T("AAA"),_T("AAA"));
}
//挪動A過程窗口地位
MoveWindow(hWndChild,80,20,240,320,TRUE);
//A過程窗口嵌入B過程窗口中
SetParent(hWndChild,hWnd);

An application can use the SetParent function to set the parent window of a pop-up, overlapped, or child window. The new parent window and the child window must belong to the same application。
這是從msdn外面對SetParent的應用描寫,說SetParent要嵌入的窗口必需和被嵌入的窗口屬於統一個運用法式,其實否則,不外SetParent前往切實其實實是一個Null,這是由於A過程中的窗口其實不存在父窗口,而SetParent挪用後會前往父窗口的句柄,故前往Null。然則卻不會影響A過程窗口嵌入。

在B過程窗口顯示時收到的WM_ACTIVE中先會收到WA_ACTIVE或許WA_CLICKACTIVE,然後也會收到WA_INACTIVE參數,也就是說在某個時刻,B過程沒有被置為最前窗口,這應當是當挪用SetParent時,影響了B過程窗口。假如你願望B過程窗口收到WM_ACTIVE新聞,必需挪用SetForegroundWindow(hWnd),假如以後窗口不是最前窗口時,加入或許最小化時不會收到WM_ACTIVE新聞中的WA_INACTIVE。特別做嵌套運用法式的代碼中,應當切記於心。

除此之外,當應用SetParent(hWndChild,hWnd)把A過程到B過程窗口中時,這時候應用FindWindow查詢到A過程的窗口句柄為null。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved