INTERNATIONAL LABORATORY CORPORATION


サポート > GENWARE3 サポート > 技術情報(よくあるご質問と回答) >

最前面に表示されているウィンドウへのフォーカス移動方法

組込みGUI統合開発環境 GENWARE3(ジェンウェアスリー) サポート

技術情報(よくあるご質問と回答)

ご質問

最前面に表示されているウィンドウにフォーカスを移動させたいのですが、どのようにしたら実現できますか。

回答

ChangeFocus()関数を使用することで、最前面に表示されているウィンドウへのフォーカスの移動が実現可能です。
以下にChangeFocus()関数を使用したサンプルコードを記載いたします。
このサンプルは、パネル上でキーを押した場合にウィンドウにフォーカスが移動するサンプルです。

■最前面のモーダレスウィンドウにフォーカスを当てるサンプルコード

short GCPanel00000::PreKeyPress( unsigned short usKeyCode, unsigned long ulStatus,long *pReturnValue )
{
    //{{_GUI_SCRIPT_FUNCTION_CALL(PreKeyPress)
    GCScreen *pScreen = NULL;
    GCFrame *pFrame = NULL;
    GCWindow *pWindow = NULL;
    GCPanel *pPanel = NULL;
    GCBaseWindowList *pWindowList = NULL;
    void *pvItem = NULL;
        
    /*スクリーンオブジェクト取得*/
    pScreen = GCWGetScreen();
    /*フレームオブジェクト取得*/
    pFrame = pScreen->GetFrame();
    if( !pFrame ){
        /* フレームが見つからなかった場合処理を抜ける*/
        return FALSE;
    }
    /*パネルオブジェクト取得*/
    pPanel = (GCPanel*)pScreen->GetPanel();
    /* ウィンドウリスト取得*/
    pWindowList = pFrame->GetChildList();
    /* リストの検索位置を初期化*/
    if( pWindowList->FindLastItem() == FALSE ){
        return TRUE;
    }
        
    /* リストの検索処理*/
      if( pWindowList->FindPrevItem( (GCBaseWindow**)&pWindow ) == TRUE ){
        pPanel = (GCPanel*)pWindow->GetPanel();
        if( pPanel ){
        /*最前面のウィンドウに対してフォーカスを当てる*/
        GCWGetScreen()->ChangeFocus( pPanel );
        }
    }

    return TRUE;
}

対象製品バージョン:Ver.2.00.000

管理番号:FG_G10084

資料更新日: 2009年2月26日

※この資料は、資料更新日現在のものです。


ページTOPへ

ILC商品一覧