2

私は C++ は初めてではありませんが、Win32 プログラムを開発するのはこれが初めてです。グラフィカルでなければならないので、入力/ダイアログボックスを使用してユーザー入力を取得しようとしましたが、成功しませんでした。

MSDN でこのトピックを読み、役に立ちましたが、定義されIDD_PASSWORDていないというエラーが表示されます。IDE_PASSWORDそれらを宣言してresource.h任意の値 (110、111 など) を指定しても、結果は得られません。自動生成された about ボックスを変更しようとした他の試みも、変更後に結果が得られません。in の値を 103 から変更すると、これも機能しないことに気付きIDD_ABOUTBOXましresource.hた。Resource View で .rc も使用してみましたが、まだ結果が得られません。

リソースボックスのテンプレートに、使用する必要がある定義済みの定数があるかどうかを知りたいです。そうであれば、それも検索したため、またはウィンドウアプリケーションでユーザー入力を取得する別の方法があるかどうかを知りたいです。整数を取得したいだけです。それだけです。

4

1 に答える 1

5

リソースに割り当てられた番号には何の魔法もありません。数字は、コードがリソースを識別するために実際に使用するものです。Visual Studioでは、Cマクロ(つまり#define)を使用してこれらの番号に記号名を割り当て、コードを読みやすくすることができます。これらの値はすべてresource.h慣例によりファイルで定義されており、そのファイルは手動で変更できますが、通常は変更しないでください。VisualStudioリソースエディターに処理させてください。

あなたが遭遇している問題は、数字が何かを意味する前に、実際に最初にそれらのリソースを作成しなければならないということです。新しいWin32プロジェクトを作成すると、Visual Studioは自動的にアバウトボックスダイアログを作成し、それにシンボリックIDを付けますIDD_ABOUTBOX。ただし、IDD_PASSWORD新しいプロジェクトでデフォルトで作成されるそのようなダイアログはなく、Windowsに組み込まれているダイアログもありません。

このダイアログは、ダイアログエディター(Visual Studioのリソースエディターの一部)を使用して自分で作成できます。これは、WYSIWYGがあるダイアログ上でコントロールをドラッグできるため、非常に簡単に実行できます。プロジェクトのリソースに新しいダイアログボックスを追加すると、好きな名前を付けることができます。IDD_PASSWORD必要に応じて、または他の名前を使用できます。数値IDは、アルゴリズムに基づいて自動的に割り当てられます。通常、使用可能な最小の番号が使用されます。

あなたがリンクした記事は、あなたがすでに象徴的な名前であなたのプロジェクトにダイアログを追加したと仮定していますIDD_PASSWORD(これはおそらく作者の側の間違いです)。それが示すのは、プロジェクトのリソースの一部として存在したダイアログを表示する方法だけです。


MSDNのドキュメントを読むだけでは、Win32プログラミングを学ぶのは少し難しいでしょう。より明確に、より論理的な順序でそれを説明する本を手に入れることを強くお勧めします。正規のテキストは、CharlesPetzoldのProgrammingWindows、 5thEditionです。新しいエディションはWin32のルーツから逸脱し、C#やSilverlightなどの完全に無関係なものについて話し始めるため、必ず5番目のエディションを入手する必要があることに注意してください。

試行錯誤とMSDNで絶対に学ぶ必要がある場合は、ここからダイアログボックスのリソースについて読み始めてください。

于 2013-03-22T06:00:21.087 に答える