ページ 1 / 1
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
お二人ともありがとうございます
参考にして今後とも精進していきたいと思います。