
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Excel(エクセル) エクセルにおいてセル内の文字を出来るだけ大きく表示する方法を教えてください。 4 2022/07/30 08:08
- Windows 10 MSアカウントの「個人設定をクラウドから削除します」は機能していないのでしょうか? 1 2022/11/20 17:01
- SQL Server SQLについて質問です。 a表がありその表には従業員名を保存するname列があります。 LIKE演算 1 2022/05/17 17:49
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- その他(プログラミング・Web制作) pythonでアプリが終了されたときに特定の処理を実行したい 2 2023/01/19 17:13
- Excel(エクセル) Excelの社員名簿 6 2023/07/10 16:35
- スタンプ・絵文字・顔文字 前回質問の続き 1 2022/08/24 16:06
- Excel(エクセル) エクセルのセルの書式設定・ユーザー定義の条件設定について 1 2022/08/17 21:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シーケンサで最小値を保持する
-
テキストボックスのvalueとtext...
-
値を返さないコード パス
-
VB.NETでコンボボックスの1行目...
-
プロシージャの呼び出し、また...
-
VBA ドロップダウンリストを残...
-
Excel VBAのリストボックスの値...
-
windowsアプリケーションで小数...
-
他のformのコントロールの値の...
-
チェックリストボックスの見え...
-
C# get set
-
構造体の部分で " | " の記述の...
-
MATLABのGUIについて教えていた...
-
ASPの変数の値をJAVA Script内...
-
Dbtypeって?
-
コンボボックスの幅の変更について
-
VB初心者。小数点以下の表示で...
-
ListBoxでオートフィルター表示
-
ISDBNULLをスルーしてDBNULLが...
-
[VBA]選択範囲の下から上に処理...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
VBA ドロップダウンリストを残...
-
VB.NETでコンボボックスの1行目...
-
Excel VBAのリストボックスの値...
-
C#の質問です
-
VB初心者。小数点以下の表示で...
-
変数に代入してある数値を表示...
-
値を返さないコード パス
-
マクロで奇数と偶数の値を2か所...
-
DataGridView1のcellで計算
-
vb6のVSFlexGridで選択行、列の...
-
PL/SQLでのTO_DATEの時間取得に...
-
setcookieで「path」に複数の値...
-
変数名の取得
-
ACCESS VBA 画像ファ...
-
vbscriptを使いexcelを参照して...
-
Excel VBA 複数選択したリスト...
-
【C++/CLI.NET】コンボボックス...
-
シーケンサで最小値を保持する
-
マクロ 特定のセル値のみクリ...
おすすめ情報