में उपयोग के लिए इस पॉइंटर को संग्रहीत करने के लिए सबसे अच्छी विधि WndProc
में उपयोग के लिए this
सूचक को संग्रहीत करने का सबसे अच्छा/सामान्य तरीका जानने में मुझे रूचि है। मैं कई दृष्टिकोणों के बारे में जानता हूं, लेकिन जैसा कि मैं समझता हूं कि इसमें अपनी खुद की कमी है। मेरे प्रश्न हैं:WndProc
क्या अलग अलग तरीकों से कोड के इस प्रकार का निर्माण करने में देखते हैं:
CWindow::WndProc(UINT msg, WPARAM wParam, LPARAM)
{
this->DoSomething();
}
मैं,, Thunks के बारे में सोच सकते हैं HashMaps स्थानीय संग्रह और खिड़की उपयोगकर्ता डेटा struct थ्रेड।
इनमें से प्रत्येक दृष्टिकोण के पेशेवर/विपक्ष क्या हैं?
कोड उदाहरण और सिफारिशों के लिए दिए गए अंक।
यह पूरी तरह से जिज्ञासा के लिए है। मैं सिर्फ इतना है कि कैसे काम करता है सोच किया गया है MFC इस्तेमाल करने के बाद और फिर ATL के बारे में सोच करने के लिए मिला है आदि
संपादित करें: जल्द से जल्द जगह मैं वैध खिड़की proc में HWND
उपयोग कर सकते हैं क्या है? इसे WM_NCCREATE
के रूप में प्रलेखित किया गया है - लेकिन यदि आप वास्तव में प्रयोग करते हैं, तो विंडो पर भेजा जाने वाला पहला संदेश नहीं है।
संपादित करें: एटीएल इस सूचक को एक्सेस करने के लिए एक थंक का उपयोग करता है। एमएफसी HWND
एस के हैशटेबल लुकअप का उपयोग करता है।
मुझे लगता है कि Get/SetProp निश्चित रूप से इसे करने का एक साफ तरीका है। यह Get/SetWindowLong (जो ओ (1) है) की तुलना में धीमी गति से है, लेकिन जब तक खिड़की के लिए "कई" गुण सेट नहीं होते हैं, मुझे संदेह है कि यह एक बाधा होगी। –