全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1836
推到 Plurk!
推到 Facebook!

如何關閉SDL視窗建立的子視窗(win32)開啟的Process?

缺席
psboy
一般會員


發表:1
回覆:5
積分:1
註冊:2010-05-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-05-30 18:38:07 IP:218.167.xxx.xxx 訂閱
如標題,
我在SDL視窗Create一個win32的subwindow
並且在Subwindow中使用CreateProcess
測試過直接關閉Subwindow時
在WM_CLOSE的TerminateProcess會正常作用
而直接關閉SDL的母視窗時
WM_CLOSE則完全不會執行
問題是出在SDL還是?
CreateWindow的時候有將SDL的視窗設定成parent
底下是Terminate process時的code

case WM_CLOSE:
TerminateProcess(pi.hProcess,0);
CloseHandle( pi.hProcess );
return 0;

編輯記錄
psboy 重新編輯於 2010-05-31 09:54:08, 註解 無‧
psboy 重新編輯於 2010-05-31 09:57:29, 註解 無‧
psboy 重新編輯於 2010-05-31 09:57:54, 註解 無‧
psboy 重新編輯於 2010-05-31 10:02:57, 註解 無‧
psboy
一般會員


發表:1
回覆:5
積分:1
註冊:2010-05-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-06-02 09:38:03 IP:122.147.xxx.xxx 訂閱
自問自答
在SDL event SDL_QUIT
加上TerminateProcess的code就行了
一開始把事情想的太複雜了 :x
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-07-15 11:48:43 IP:59.124.xxx.xxx 訂閱
真巧,我也在玩SDL ^^
順便分享一下,

[code cpp]
#include "SDL_syswm.h"

struct SDL_SysWMinfo wmInfo;
SDL_VERSION(&wmInfo.version);
SDL_GetWMInfo(&wmInfo);
[/code]
其中wmInfo.window 就是SDL 產生的 window handle
有了window handle 想幹什麼就能幹了 XDDD

===================引 用 psboy 文 章===================
如標題,
我在SDL視窗Create一個win32的subwindow
並且在Subwindow中使用CreateProcess
測試過直接關閉Subwindow時
在WM_CLOSE的TerminateProcess會正常作用
而直接關閉SDL的母視窗時
WM_CLOSE則完全不會執行
問題是出在SDL還是?
CreateWindow的時候有將SDL的視窗設定成parent
底下是Terminate process時的code

case WM_CLOSE:
TerminateProcess(pi.hProcess,0);
CloseHandle( pi.hProcess );
return 0;

psboy
一般會員


發表:1
回覆:5
積分:1
註冊:2010-05-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-07-15 14:03:20 IP:122.147.xxx.xxx 訂閱
SDL 產生的 window handle
在create subwindow的時候就已經用過了....
因為母視窗是SDL
子視窗是win32
HWND WINAPI CreateWindow(    __in_opt  LPCTSTR lpClassName,    __in_opt  LPCTSTR lpWindowName,    __in    DWORD dwStyle,    __in    int x,    __in    int y,    __in    int nWidth,    __in    int nHeight,    __in_opt  HWND hWndParent,    __in_opt  HMENU hMenu,    __in_opt  HINSTANCE hInstance,    __in_opt  LPVOID lpParam
);
HWND hWndParent就是填SDL 產生的 window handle

http://msdn.microsoft.com/en-us/library/ms632679(VS.85).aspx
===================引 用 ddy 文 章===================
真巧,我也在玩SDL ^^
順便分享一下,

[code cpp]
#include "SDL_syswm.h"

struct SDL_SysWMinfo wmInfo;
SDL_VERSION(&wmInfo.version);
SDL_GetWMInfo(&wmInfo);
[/code]
其中wmInfo.window 就是SDL 產生的 window handle
有了window handle 想幹什麼就能幹了 XDDD
編輯記錄
psboy 重新編輯於 2010-07-15 14:04:58, 註解 無‧
psboy 重新編輯於 2010-07-15 14:05:33, 註解 無‧
系統時間:2017-12-13 4:05:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!