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

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
Bynn62
記事: 4
登録日時: 2006年10月03日(火) 17:28
お住まい: 三重県

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

#1 投稿記事 by Bynn62 »

こんにちはbynn62といいますが・・・


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

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


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

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


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

よろしくお願いします
ゲスト

#2 投稿記事 by ゲスト »

ウィンドウが作成された後にSetする必要があります。

コード: 全て選択


Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
Dim Titel[MAX_PATH] As BYTE
lstrcpy(Titel ,"abcdefg")
SetWindowText(hMainWnd, Titel)
End Sub
みどるべあ
記事: 25
登録日時: 2005年11月13日(日) 15:25
連絡する:

#3 投稿記事 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を呼び出しています.
Bynn62
記事: 4
登録日時: 2006年10月03日(火) 17:28
お住まい: 三重県

#4 投稿記事 by Bynn62 »

お二人ともありがとうございます

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