TCHAR s[80] = "Test";
MessageBox(NULL, s, "題名", MB_YESNO);
としてダイアログを表示させるのと同じように、
ダイアログボックスをリソースエディタで作成し
作成したダイアログ内に、文字列を表示させるには
どのようにしたら良いでしょうか?
作成したダイアログは、MessageBox関数で作成されるものと同じ。
表示させたい文字列は、MessageBox関数の第2パラメータのTCHAR型変数sと同じ。
ダイアログ内の表示させたい所の識別子は、IDC_STATIC。
MS VC++ & Win98 の環境で作成してます。
No.4ベストアンサー
- 回答日時:
エラー情報を取得してみてください。
HWND handle = GetDlgItem(hWnd, IDC_STATIC);
DWORD errorInf = 0;
if (handle == NULL) { errorInf = GetLastError(); }
として、これらの処理を通った後のerrorInfの値をデバッガ等で見てください。
数値に対応するエラーは参考URLにあります。
(FormatMessage()を使用してもかまいませんが)
ここまででハンドルが正常に取得できている場合には、SetWindowText()について同様にエラー情報を取得してみてください。
参考URL:http://msdn.microsoft.com/library/default.asp?ur …
いつも回答を頂きありがとうございます。
HWND handle = GetDlgItem(hWnd, IDC_STATIC);
DWORD errorInf = 0;
if (handle == NULL) { errorInf = GetLastError(); }
は、Dialog作成処理後で良いですよね?
0x00000が格納されていたので、ERROR_SUCCESS
よって、異常なし。
今度は、SetWindowText(GetDlgItem(hWnd, IDC_STATIC), StrDat1);
の後に試したら、
0x00057が格納されていたので、ERROR_INVALID_PARAMETER
よって、パラメータがおかしい?
という解釈で良いでしょうか?
0x00057は16進なので、10進に変換して87のエラー詳細をみましたが。
No.3
- 回答日時:
こんにちは。
itohhといいます。以下のような感じでよいのでしょうか?
例えば、以下のようなダイアログをイメージした場合で説明します。
+---------------------+
| |
+---------------------+
| |
| |
| メッセージエリア |
| |
| +------+ +------+ |
| | ボタン1 | | ボタン2 | |
| +------+ +------+ |
| |
+---------------------+
(1)「メッセージエリア」のところは、スタティックコントロールでIDC_STATIC_MSGとします。
IDC_STATICのままだとクラスウィザードでメンバ変数に割り当てられません。
(IDC_STATIC_MSGは、適当な名前に変えてください。)
(2)IDC_STATIC_MSGにクラスウィザードでメンバ変数をCStirngでm_Stat_Msgとします。
CStirngの変数に値を設定するように扱えます。
(3)あとは、このメンバ変数に値を設定するタイミングを工夫すればよいでしょう。
例えば。
a.DoModal関数で表示する前に値を設定しておく。
b.MessageBox関数みたいなラッパー関数を自作し、その中で値を設定する。
c.Etc...
回答ありがとうございます。
せっかくご丁寧な回答をいただけたのですが、
クラスウィザードを使わない方法で
コントロール内のスタティックテキスト(IDC_STATIC)
へ文字列を表示したいのです。
また、現在の自分のLEVELでは説明を理解するのは困難である為
上記方法での追求は、困難を招くと考えられることから
LevelUpしてから同じ仕様を上記方法で試したいと思います。
その時、カベにぶつかるような事がありましたら、
参考にさせていただきます。
ありがとうございました。
No.2
- 回答日時:
> SetWindowText(hWnd, StrDat1);
ここで親windowを指定しているからではないですか?
SetWindowText(GetDlgItem(hWnd, IDC_STATIC), StrDat1);
ではどうでしょう。
エラー処理無視ですが。
2度目の回答ありがとうございます。
試したところ、
親ウィンドウのタイトルバーに表示されなくなりました。
が、ダイアログ内のスタティックテキスト(IDC_STATIC)
には、表示されませんでした。。。
StrDat1の中身をデバッガでも見たんですけど、
きちんと格納されていました。
必ずどこか間違っているはずなんですけど。
コントロールへアクセス出来ていないのでしょうか?
No.1
- 回答日時:
GetDlgItem()でIDC_STATICに対応するコントロールのハンドルを取得し、
SetWindowText()を実行すればできませんか?
windowsx.hのマクロStatic_SetText()を使った方がいいのかもしれませんが。
参考URL:http://www.microsoft.com/japan/developer/library …
回答ありがとうございます。
やっと試すことができました。
が、
GetDlgItem(hWnd, IDC_STATIC);
SetWindowText(hWnd, StrDat1);
とすると、親ウィンドウのタイトルバーが書き換えられちゃいます。
これは、ウィンドウハンドルの取得の仕方が間違っているのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
高校生はアルバイトするべきだろうか?賛成だったら「賛」、否定だったら「否」を文頭においてあなたの意見を教えてください。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
[MFC] CWnd::MessageBoxの警告アイコンイメージの取得方法
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
値を返さないコード パス
-
VB.NETでコンボボックスの1行目...
-
[VBA]選択範囲の下から上に処理...
-
VBA ドロップダウンリストを残...
-
VB2010にて、Log関数の値が違う...
-
vb6のVSFlexGridで選択行、列の...
-
MaskEditBoxへ値の設定を行いたい
-
vbscriptを使いexcelを参照して...
-
pingを行うプログラム
-
delphiで、タイマー関数の中で...
-
VB初心者。小数点以下の表示で...
-
C言語です
-
Excel VBAのリストボックスの値...
-
ASPの変数の値をJAVA Script内...
-
PL/SQLでのTO_DATEの時間取得に...
-
スクロールバーの境界値は?
-
マクロ 特定のセル値のみクリ...
-
DataTableに対するLINQについて
-
TeraTerm inputboxについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
VB.NETでコンボボックスの1行目...
-
値を返さないコード パス
-
Excel VBA 複数選択したリスト...
-
PL/SQLでのTO_DATEの時間取得に...
-
マクロ 特定のセル値のみクリ...
-
VB初心者。小数点以下の表示で...
-
Excel VBAのリストボックスの値...
-
変数名の取得
-
VB.NETでアクティブなformを知...
-
マクロで奇数と偶数の値を2か所...
-
Powershellのparamについて
-
ISDBNULLをスルーしてDBNULLが...
-
DataTableに対するLINQについて
-
Excel vba ユーザーフォームテ...
-
C#の質問です
-
ユーザーフォームのテキストボ...
-
VBA ドロップダウンリストを残...
-
シーケンサで最小値を保持する
-
[VBA]選択範囲の下から上に処理...
おすすめ情報