ページ 11

SetWindowText関数でタイトルバーの文字列は指定できるのか?

Posted: 2007年8月29日(水) 10:39
by Bynn62
こんにちはbynn62といいますが・・・


現在、見よう見真似で作ったタイマーのソフトを作っていますが

タイトルバーにあと○○秒などの文字を入れたいと思っていますが


はじめはSetWindowText関数で行けばいいかと思いましたが

設定する文字列が格納されている、バッファへのポインタがわかりません


これは別の関数で設定するのでしょうか?

よろしくお願いします

Posted: 2007年8月29日(水) 11:43
by ゲスト
ウィンドウが作成された後にSetする必要があります。

コード: 全て選択


Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
Dim Titel[MAX_PATH] As BYTE
lstrcpy(Titel ,"abcdefg")
SetWindowText(hMainWnd, Titel)
End Sub

Posted: 2007年8月29日(水) 13:25
by みどるべあ
http://msdn.microsoft.com/library/ja/de ... owtext.asp
タイマーということなので数値をタイトルバーに設定するとして、
SetWindowTextはLPCTSTR,すなわちchar*(BytePtr)またはwchar_t*しか取らないので変換する必要があります

コード: 全て選択

'註:timerは設定したい数値, hWndは設定したいウィンドウのハンドル
'さらに註:SetWindowTextは別のアプリケーションのウィンドウには使えません
Dim str As String
str = "あと" + Str$(timer) + "秒"
SetWindowText(hWnd, StrPtr(str))
やっていることは、timerの数値をStringに変換して"あと"と"秒"をつけて
StringからBytePtrに変換してSetWindowTextを呼び出しています.

Posted: 2007年8月29日(水) 17:04
by Bynn62
お二人ともありがとうございます

参考にして今後とも精進していきたいと思います。