SetWindowLongPtr + GWLP_USERDATA を使用して、データを指すポインターを格納できることはわかっています。ただし、「ハンドル」、「bool」、「int」、またはその他のより大きなデータなど、データを直接保存することはできます。
http://msdn.microsoft.com/zh-tw/library/windows/desktop/ms644898%28v=vs.85%29.aspxから、それは言います:
ハンドルやポインターなど、アプリケーション専用の新しい追加情報を設定します。
ということで、取っ手を収納するのもOKなのだろう。また、この方法を使用して RGB 値を問題なく保存しました。しかし、これがこのようなことをするのが良い考えかどうかはわかりません。また、他の大きなデータ (構造など) を保存できますか?
ps: この質問の動機は、ダイアログ ウィンドウを作成するときに、各コントロールのデータを保存したいということです。もちろん、ウィンドウ プロシージャで静的変数を使用して、(それらへの) ポインターを SetWindowLongPtr 関数に渡すこともできます。しかし、これは理論的には「完璧」ではありません。ダイアログ ウィンドウを閉じると、これらのデータは必要なくなるからです。もちろん、実際には、使用する必要があるデータは非常に小さいので、メモリの使用量を気にする必要はありません。しかし、もっと良い方法があるかどうかを知りたいです。