国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

VC實現A進程窗口嵌入到B進程窗口中顯示的方法

2020-01-26 15:29:30
字體:
來源:轉載
供稿:網友

本文通過一個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。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 巴马| 岱山县| 治县。| 夏河县| 梧州市| 清涧县| 新河县| 霞浦县| 沧源| 普定县| 项城市| 福建省| 台江县| 安庆市| 霍州市| 光山县| 都兰县| 屏南县| 苍梧县| 汉中市| 横峰县| 改则县| 华蓥市| 浠水县| 东山县| 临海市| 道真| 碌曲县| 临清市| 齐齐哈尔市| 西林县| 娄底市| 勃利县| 达日县| 广州市| 永靖县| 手游| 基隆市| 卓资县| 河津市| 宁夏|