我需要在MFC-Project中找到第一個空閒的「控制資源ID」(IDC_)以在運行時創建新的控制元素。第一個免費的MFC資源ID
我的意圖是編寫一個管理類,用於跟蹤運行時的資源。要初始化這個類,我需要知道由「APStudio」(VS2010的所見即所得資源編輯器)分配的最後一個資源ID是什麼。
在看「RESOURCE.H」我可以找到這個ID(_APS_NEXT_CONTROL_VALUE)#define語句 - 這個值由所見即所得的編輯器更新,並應解決我的問題。不幸的是,這個定義在編譯時不活躍,但僅在使用APStudio時(#ifdef APSTUDIO_INVOKED)。 刪除#ifdef會導致ID被定義,但不會被APStudio更新(以防手動更改)。 總的來說,我想離開整個項目(Resource.h等),所以我的課程可以普遍使用。
我希望我能以某種方式明確我的問題 - 如果沒有,請隨時提問。 非常感謝您的閱讀和幫助我:-)
還有就是要查詢的第一個「免費」資源ID的標準方法。即使有,你仍然會失敗*「如果有人做了這個」*測試,例如另一個在運行時創建控件並分配ID的對話框。 MFC有一個描述正在使用的ID範圍的文檔([TN020:ID命名和編號約定](https://msdn.microsoft.com/en-us/library/t2zechd4.aspx)),但這不會幫助很多。如果你真的想實現一個管理類,通過他們的'HWND'來引用控件,因爲ID不需要是通用唯一的。 – IInspectable
我不敢讀這個答案。已經找到了TN020,但得出了同樣的結論。我想我會深入使用HWND - 非常感謝你。 – jbjbjbjbjbjbjbjbjbjb
'HWND'通用識別窗口,因此它們是查找/管理密鑰的自然選擇。這也將處理多個窗口共享相同ID的情況。例如,這對靜態控件很常見,通常它們共享相同的ID:'IDC_STATIC'。 – IInspectable