费了九牛二虎之力啊啊啊啊啊
参考着这个链接和例子加载皮肤
http://www.rupeng.com/forum/thread-11576-1-1.html
但
skinmagic对话框菜单不显示,http://zhidao.baidu.com/question/97145489.html
下面是对话框加载菜单的代码:
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
解答:
你是不是在你的程序的InitInstance函数中加入了
SetDialogSkin函数
这种按照一般加皮肤的方法,在对话框中加菜单是不行的!
你需要在你的主对话框的OnInitDialog函数中加入下列函数
SetWindowSkin( m_hWnd, "Dialog" );
SetDialogSkin( "Dialog" );
把原来InitInstance函数中SetDialogSkin函数注释掉
SetWindowSkin( m_hWnd, "Dialog" );
m_hWnd 是你的主对话框的窗口句柄
这样就可以在你的主兑换框中添加菜单了!
后面那句SetDialogSkin是为了给你以后的对话框添加皮肤的!
参考着这个链接和例子加载皮肤
http://www.rupeng.com/forum/thread-11576-1-1.html
但
skinmagic对话框菜单不显示,http://zhidao.baidu.com/question/97145489.html
下面是对话框加载菜单的代码:
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
解答:
你是不是在你的程序的InitInstance函数中加入了
SetDialogSkin函数
这种按照一般加皮肤的方法,在对话框中加菜单是不行的!
你需要在你的主对话框的OnInitDialog函数中加入下列函数
SetWindowSkin( m_hWnd, "Dialog" );
SetDialogSkin( "Dialog" );
把原来InitInstance函数中SetDialogSkin函数注释掉
SetWindowSkin( m_hWnd, "Dialog" );
m_hWnd 是你的主对话框的窗口句柄
这样就可以在你的主兑换框中添加菜单了!
后面那句SetDialogSkin是为了给你以后的对话框添加皮肤的!
本文介绍了解决在使用特定皮肤加载方法后导致对话框菜单无法正常显示的问题。通过调整皮肤设置的位置和方式,使得即使应用了皮肤,也能成功在对话框中添加菜单项。
1813

被折叠的 条评论
为什么被折叠?



