> Vistaではタブのアイコンが表示されなかった orz
ImageList_Duplicate() が NULL を返していました。
以下の修正で表示されるようになります。
Index: sakura_core/CTabWnd.cpp
===================================================================
--- sakura_core/CTabWnd.cpp (revision 977)
+++ sakura_core/CTabWnd.cpp (working copy)
@@ -1591,13 +1591,18 @@
HIMAGELIST CTabWnd::ImageList_Duplicate( HIMAGELIST himl )
{
// 本物の ImageList_Duplicate() があればそれを呼び出す
+ HIMAGELIST hImlNew;
if( m_RealImageList_Duplicate )
- return m_RealImageList_Duplicate( himl );
+ {
+ hImlNew = m_RealImageList_Duplicate( himl );
+ if( NULL != hImlNew )
+ return hImlNew;
+ m_RealImageList_Duplicate = NULL; // 2006.06.20 ryoji 失敗時は代替処理に切り替え
+ }
// 本物の ImageList_Duplicate() の代替処理
// 新しいイメージリストを作成してアイコン単位でコピーする
//(この場合、多色アイコンは綺麗には表示されないかもしれない)
- HIMAGELIST hImlNew;
hImlNew = ImageList_Create( CX_SMICON, CY_SMICON, ILC_COLOR32 | ILC_MASK, 4, 4 );
if( hImlNew )
{
NULL を返すようなら ImageList_Duplicate() が存在しないのと同じ扱いにしてます。
正式版 Vista では従来通りでも動くようになるかと思われますが、
エラー処理としても妥当な気がするので修正しておくのがいいかもしれません。