よくある質問
FAQ
テキストボックスにおいて、かな変換中の文字列に下線を表示する方法を教えてください。
以下の処理を実装していただくことでテキストボックスに下線を表示できます。
- テキストボックスに入力されている文字列を取得します。
- .取得した文字列の幅を取得します。
- 直線の始点を取得します。
- 直線の始点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);
}
キーワードで検索する
カテゴリーから検索する
- よくある質問
- 導入フロー
- セミナー
- カタログダウンロード
- On YouTube