INTERNATIONAL LABORATORY CORPORATION


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

テキストボックスの入力文字に下線を表示する

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

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

ご質問

テキストボックスにおいて、かな変換中の文字列に下線を表示する方法を教えてください。

回答

以下の処理を実装していただくことでテキストボックスに下線を表示できます。

  1. テキストボックスに入力されている文字列を取得します。
  2. .取得した文字列の幅を取得します。
  3. 直線の始点を取得します。
  4. 直線の始点X座標と文字列の幅を加えた値を、直線の終点X座標として設定します。

上記の処理のサンプルコードを以下に記載します。
テキストボックスのコールバック関数「OnDraw」内に記載してください。

【C言語用サンプル】


/*ソースコードはこのように記述します*/
GWDC        *pDC;            /*描画コンテキスト*/
HGDRAW        hDraw;            /*描画ハンドル*/
HGFONT        hFont;            /*フォントハンドル*/
short        ulWidth;        /*文字幅*/
GTCHAR        szTextBuf[128];    /* 入力中の文字列格納用バッファ */
GPoint        gptStartPoint;    /* 直線の始点 */
GPoint        gptEndPoint;    /* 直線の終点 */
GTextBox    *pText;
GSLine        *pgsLine;

/*テキストボックスオブジェクト取得*/
pText = (GTextBox*)GWGetVmt( GPanel_VMT, pSelf )->GetChild( pSelf, GTEXTBOX00000 );

/* 直線オブジェクト取得 */
pgsLine = (GSLine *)GWGetVmt( GPanel_VMT, pSelf )->GetChild( pSelf, GSLINE00001 );

/* 描画コンテキスト取得 */
pDC = (GWDC*)GWGetVmt(GScreen_VMT, GWGetScreen() )->GetWDC( GWGetScreen() );    

/*描画ハンドルの取得*/
hDraw = GWGetVmt( GWDC_VMT, pDC )->GetHGDRAW( pDC );

/*指定フォントのロード*/
hFont = GFLoadFont( "MS 明朝" );

/*フォント設定*/
GDSetFont( hDraw, hFont );

/* テキストボックスに入力されている文字列を取得する */
GWGetVmt( GTextBox_VMT, pText )->GetString( pText, szTextBuf , sizeof( szTextBuf ) );

/*テキストの文字幅取得する*/
ulWidth = GDGetStringWidth( hDraw, szTextBuf );

/* 直線の始点位置を取得する */
GWGetVmt(GSLine_VMT, pgsLine)->GetStartPoint(pgsLine, &gptStartPoint );

/* 直線の終点座標を計算する */
gptEndPoint.nX = (gptStartPoint.nX + (short)ulWidth);
gptEndPoint.nY = gptStartPoint.nY;

/* 直線の終点位置を設定する */
GWGetVmt( GSLine_VMT, pgsLine )->SetEndPoint(pgsLine, &gptEndPoint);
}

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

管理番号:FG_G10070

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

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


ページTOPへ

ILC商品一覧