• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            HGE in a child window

            Running HGE in a child window hosted by a Windows application may be useful to create authoring tools and ActiveX controls or to integrate HGE into a third party IDE. Here follow the guidelines how to do that.

            Creating HGE window as a child

            To run HGE in a child window mode you should just specify the parent window handle. To do this set HGE_HWNDPARENT system state before calling to System_Initiate:

            hge->System_SetState(HGE_HWNDPARENT, hwnd);
            

            Mouse cursor

            You may prefer HGE to use standard Windows cursor while in child window mode. This can be done by setting HGE_HIDEMOUSE system state to false:

            hge->System_SetState(HGE_HIDEMOUSE, false);
            

            Dispatching application's messages and running Frame Function

            To provide additional flexibility System_Start behaves a bit differently in child window mode. First, it returns after just one call to user's frame function regardless of the value returned by it. Second, it doesn't dispatch window messages. So you should set up your own message processing loop. Here's the simpliest loop enough to run HGE properly:

            for(;;)
            {
              if(hge->System_GetState(HGE_HWND))
                hge->System_Start();
            
              if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
              { 
                if(msg.message == WM_QUIT) break;
                DispatchMessage(&msg);
              }
            }
            

            Moving and resizing HGE window

            You can move and resize HGE window with WinAPI functions like MoveWindow. When it's window resized, HGE will reinitiate DirectX to meet new window dimensions:

            MoveWindow(hge->System_GetState(HGE_HWND),
                       x, y, width, height, true);
            

            Destroying HGE window

            HGE has lots of resources associated with it's window. So you should use System_Shutdown call to free them, don't rely on just destroying the window. The good place to do this is WM_DESTROY handler of the parent window:

            case WM_DESTROY:
                FreeLoadedHGEResources();
                hge->System_Shutdown();
                PostQuitMessage(0);
                return FALSE;
            

            Child window mode limitations

            1. To accept keyboard events in child window mode HGE window must have input focus. It gains focus automatically when you click somewhere inside. Use the following call to set the focus explicitly:

            SetFocus(hge->System_GetState(HGE_HWND));
            

            2. Switching into fullscreen is unavailable when running in child window mode. Regardless of HGE_WINDOWED system state HGE will run in a window.

            posted on 2007-03-08 13:25 楊粼波 閱讀(397) 評論(0)  編輯 收藏 引用

            久久精品一区二区| 久久这里只有精品首页| 中文字幕一区二区三区久久网站| 人人狠狠综合久久亚洲88| 久久播电影网| 久久夜色精品国产噜噜麻豆| 国产精品九九九久久九九| 人妻中文久久久久| 国产一级持黄大片99久久| 久久综合视频网站| 精品午夜久久福利大片| 久久影院午夜理论片无码| 国产亚洲欧美精品久久久| 亚洲AV伊人久久青青草原| 97久久精品国产精品青草| 色综合久久夜色精品国产| 久久夜色精品国产亚洲| 久久精品国产99国产精品导航| 国内精品久久久久久久影视麻豆| 色狠狠久久AV五月综合| 久久婷婷色香五月综合激情 | 久久99精品久久久久久不卡| 中文精品99久久国产| 精品久久国产一区二区三区香蕉| 久久天堂AV综合合色蜜桃网| 伊人久久大香线蕉综合网站| 精品久久人人爽天天玩人人妻 | 久久人人超碰精品CAOPOREN | 久久毛片一区二区| 久久av高潮av无码av喷吹| 狠狠狠色丁香婷婷综合久久五月| 久久亚洲精品无码aⅴ大香| 久久乐国产精品亚洲综合| 亚洲精品国产成人99久久| 99久久免费国产精品热| 国内精品久久九九国产精品| 久久久久亚洲AV成人片| 国产V综合V亚洲欧美久久| 99久久99久久| 国产午夜福利精品久久| 久久精品无码av|