ResourceHacker では、実行可能ファイル (Windows) を開くと、ダイアログに関連付けられた識別子が表示されます。彼らがどこから来たのか誰か知っていますか?つまり、HWND から ID を取得するために C++ プログラムで同じことを行うにはどうすればよいでしょうか?
ところで、GetWindowLong(hwnd, GWL_ID) は 0 を返します。
ありがとう
はダイアログ内のコントロールの識別子を返しますが、ダイアログには識別子がないGetWindowLong(hwnd, GWL_ID)
ため、ダイアログ自体には使用できません。
ダイアログに関連付けられた識別子は、実際には、ウィンドウではなく、リソースBLOB自体を参照するために使用されます。これらはダイアログの作成に使用されます(CreateDialog()を参照)。
ダイアログが作成されると、元のテンプレートまたはその識別子への接続はありません。実際には、そのIDは使用できません。ダイアログは、単にそのIDで識別されますHWND
。同じダイアログリソースを使用して、複数の異なるダイアログを作成できることに注意してください。
これらの識別子は、リソースエディタによって(通常は)順番に割り当てられます。手動でリソースを作成する場合は手動で割り当てられます。
このトピックの詳細については、リソースを使用せずにダイアログを作成するCreateDialogIndirect()関数について読むことができます。