我正在研究一個MFC應用程序,這些應用程序在過去幾年和不同團隊的開發人員中都非常混亂。包含所有命令/消息映射的resource.h文件隨着時間的推移變得相當大,並且存在很多問題(如重複ID)。我不熟悉MFC,所以這個問題可能聽起來很愚蠢......MFC resource.h命令/消息標識
MSDN文檔提到命令ID和消息ID不應該小於WM_USER和WM_APP相應。我發現Visual Studio生成的resource.h中的大多數命令ID都是在100左右開始的。不應該導致一些干擾MFC/Windows命令和消息,這些命令和消息與應用程序定義的ID重疊?例如,我有一個命令ID:
#define ID_MY_ID 101
並且有一個Windows命令具有相同的ID。當MC向APP發送此命令時,它的處理類似於應用程序定義的ID_MY_ID,並且該應用程序正在採取不必要的操作。這是可能的情況嗎?
另外,是否有一些第三方工具可以幫助分析項目資源?
更新1:
新的問題出現了: 什麼是添加新的自定義命令到應用類的最佳方法是什麼?據我所知,在以下列方式添加之前:向resouce.h添加一個命令ID,然後向處理類添加一個消息映射處理程序。
問題的一部分是ID手動添加到resource.h中,並且命令處理程序也手動添加到消息映射中。所以資源編譯器不會抱怨這樣的重複。此外,「資源符號」工具會將這些手動添加的命令標記爲未使用,儘管它們實際上已被使用。 – 2010-04-04 10:35:25
「資源符號」工具僅在資源文件(.rc)中未找到命令時將其標記爲未使用。它不監視它們是否用於代碼。 – djeidot 2010-04-05 16:35:47