適当に日々あったこととか書いてます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
int GetWindowTextLength(
HWND hWnd // ウィンドウまたはコントロールのハンドル
);
指定されたウィンドウのタイトルバーテキストの文字数を返します( そのウィンドウがタイトルバーを持つ場合)。
指定したウィンドウがコントロールの場合は、コントロール内のテキストの文字数を返します。
ただし、GetWindowTextLength 関数で他のアプリケーションのエディットコントロールのテキストの長さを取得することはできません。
長いので以下は続きに~
HWND hWnd // ウィンドウまたはコントロールのハンドル
);
指定されたウィンドウのタイトルバーテキストの文字数を返します( そのウィンドウがタイトルバーを持つ場合)。
指定したウィンドウがコントロールの場合は、コントロール内のテキストの文字数を返します。
ただし、GetWindowTextLength 関数で他のアプリケーションのエディットコントロールのテキストの長さを取得することはできません。
長いので以下は続きに~
<パラメータ>
・hWnd
ウィンドウまたはコントロールのハンドルを指定します。
<戻り値>
関数が成功すると、テキストの文字数が返ります。特定の条件の下では、実際のテキスト長よりも大きくなります。詳細については、解説を参照してください。
ウィンドウがテキストを持たない場合は、0 が返ります。拡張エラー情報を取得するには、 関数を使います。
<解説>
この関数は、ターゲットウィンドウが現在のプロセスに所有されている場合には、指定されたウィンドウまたはコントロールに メッセージを送ります。
特定の条件の下で、実際のテキストの長さよりも大きい値が返る場合があります。
これは、特定の ANSI と Unicode が混在している場合に起こる現象で、オペレーティングシステムがテキスト内への DBCS 文字の混在を許容していることが原因です。
いずれにしても、戻り値が実際のテキスト長より小さくなることはないので、この関数の戻り値は、確保するバッファサイズの目安として使用できます。
戻り値が大きくなる現象が見られるのは、アプリケーションが ANSI 関連の関数と Unicode を持つコモンダイアログの両方を使用している場合です。
また、Unicode のウィンドウプロシージャを持つウィンドウに対して ANSI 版の GetWindowTextLength 関数を使った場合や、ANSI のウィンドウプロシージャを持つウィンドウに対して Unicode 版の GetWindowTextLength 関数を使った場合にもこの現象が見られます。ANSI 関連および Unicode 関連の関数の詳細については、「Win32 Function Prototypes」を参照してください。
テキストの正確な長さを取得するには、 メッセージ、 メッセージ、 メッセージ、または GetWindowText 関数を使ってください。
<対応情報>
Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winuser.h で宣言、Windows.h をインクルード
インポートライブラリ:User32.lib を使用
Unicode:Windows NT/2000 は Unicode 版と ANSI 版を実装
引用:ttp://msdn.microsoft.com/ja-jp/library/cc364817.aspx
<使用メモ>
バーにタイトルがあるかないかの取得に使用。
if(GetWindowTextLength(hwnd) > 0){
// タイトル有
}
って感じ。
PR
この記事にコメントする