SkinMagic使用后按钮加自定义图标或菜单GetMneu返回NULL的解决方法
我們在使用SkinMagic類美化窗口之后,在程序的InitInstance函數中會加入了SetDialogSkin函數,
但我們在使用時卻發現,我們添加的菜單或者按鈕圖標無法正常顯示!
?
一.出現這樣的問題,需要修改以下位置(基于對話框的編程):
1.刪除InitInstance函數中加入的SetDialogSkin函數,
2.在需要顯示圖標和按鈕的主對話框的OnInitDialog函數中加入下列函數
SetWindowSkin( m_hWnd, "Dialog" );?
SetDialogSkin( "Dialog" );
其中m_hWnd 是主對話框的窗口句柄
后面那句SetDialogSkin是為了給你以后的對話框添加皮膚的!
?
二.Getmenu返回NULL導致無法調用GetSubMenu(),
可以使用Skin鏈接庫自帶的函數GetSkinMenu方法解決:
CMenu::FromHandle(GetSkinMenu(m_hWnd))替代Getmenu即可
1.m_hWnd為對應菜單窗口句柄
2.APP函數調用使用CWinThread類中的成員變量Cwnd指針m_pMainWnd->m_hWnd.
??
?對于MessageBox彈出時會是默認的界面的,在第一次初始化時加入 "SetDialogSkin( "Dialog" )"? 就不會有這樣的問題出現,
若在換膚換膚過程中出現了此問題,也可以在對于的函數中再重新加載一次.
總結
以上是生活随笔為你收集整理的SkinMagic使用后按钮加自定义图标或菜单GetMneu返回NULL的解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC 界面美化 Skinmagic
- 下一篇: 外挂学习之路(15)---lua语言的使