ダブルクォートの表示

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
HOLY

ダブルクォートの表示

#1 投稿記事 by HOLY »

はじめまして。
まったくの初心者でつい最近プログラミングを始めました。
とにかくBASIC言語になれようと、簡単なプログラムから作っています。
それで、"SendDlgItemMessage"関数を使用して、EditBoxに文字を送るときに、
半角ダブルクォートを送ろうとすると、

ダブルクォートの後に不正な文字が含まれています

このようなエラーが表示されます。
どうしたら、半角ダブルクォートをSendDlgItemMessage関数でEditBoxに送れるのでしょうか?
初歩的な質問ですが、宜しく御願いします。
もし、他のトピックスとかぶっていたらすみません。
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

Re: ダブルクォートの表示

#2 投稿記事 by 7 »

> はじめまして。
初めまして。主に初歩的な質問に回答している 7 です。

> どうしたら、半角ダブルクォートをSendDlgItemMessage関数でEditBoxに送れるのでしょうか?
エスケープシーケンスという機能があるのでそれを使うか、Chr$という関数を使ってダブルコーテーションを表示することができます。

エスケープシーケンスの利用が楽なのでその方法でやると以下のようになります。

コード: 全て選択

SendDlgItemMessage(hMainWnd,EditBox1,WM_SETTEXT,0,Ex"\qダブルコーテーション\q" As LPARAM)
文字列と認識させる為に "文字列" とダブルコーテーションで挟みますよね?
その前に Ex を付けるとエスケープシーケンスが使えるようになります。
で、" のエスケープシーケンスは \q になると。

質問の内容とは違うのですが、WM_SETTEXT を送るより、SetWindowText(), SetDlgItemText()関数を使った方が良いと思います。

コード: 全て選択

	SetDlgItemText(hMainWnd,EditBox1,Ex"ダブルコーテーションは \q です。")

コード: 全て選択

Dim hEdit As HWND
	hEdit=GetDlgItem(hMainWnd,EditBox1)
	SetWindowText(hEdit,Ex"ダブルコーテーションは \q です。")
HOLY

有難う御座いました!

#3 投稿記事 by HOLY »

有難う御座いました。
助かりました。
また、BASICで分からないことがあったら、質問させていただます(笑)
本当に有難う御座いました。
返信する