最近遇到一個問題,需要動態的從xml文件讀取一系列圖標文件,加載到一個toolbar中,由於使用的是vs2008 with sp1 feature pack,自然想到用CMFCToolbar來做,思路也很簡單
1、將圖標文件加入CMFCToolBarImages。
2、設置CMFCToolbar::SetUserImages為第1步中的CMFCToolBarImages。
3、繼承CMFCToolbar,在OnCreate中動態調用SetButtons或者InsertButton函數添加相應按鈕,或者在外部調用InsertButton public版本(引用)添加按鈕。
4、在MainFrm中動態創建工具條。
一切就緒后,問題出現了,工具欄圖標沒有顯示,而鼠標hover時tooltip中卻可以看見加載的圖標。
在網上google一天,始終得不到答案。
無奈之下,試着在Create后調用LoadToolbar,加載一個已經存在的toolbar資源,然后調用RemoveAllButtons,刪除原本的所有按鈕,然后再動態添加按鈕,奇跡出現了!所有圖片都能構顯示出來。
翻看源碼后,任然沒有找到答案,只有先記在這里。希望知道的人能告訴一聲。