📄 01_9_12_7.asp.html
字号:
END</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
POPUP "&Help"</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
BEGIN</td></tr></table><table width=100% ><tr><td class=a14>
MENUITEM "&About Menu...", ID_APP_ABOUT</td></tr></table><table width=100% ><tr><td class=a14>
END</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
END</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
<td class=a14> 保存修改后的资源文件。把资源文件重新调入资源编辑器,可发现已有两套菜单资源。如有什么不合适的地方可在资源编辑器中做进一步修改。
</td>
</tr></table><table width=100% ><tr><td class=a14>
</td></tr></table>
<table width=100% >
<tr>
<td class=a14><b> 三、加入菜单变量到程序中 </b></td>
</tr>
</table>
<table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
<td class=a14> 由于菜单附属于主窗口,所以应在CMainFrame类中加入相关变量: </td>
</tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
public:</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
CMenu m_pEnglish;\\用于保存英语菜单资源</td></tr></table><table width=100% ><tr><td class=a14>
CMenu m_pChinese;\\用于保存汉语菜单资源 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
enum{C,E}m_eMenu;\\标示现在使用的是英语</td></tr></table><table width=100% ><tr><td class=a14>
菜单还是汉语菜单,C--汉语,E--英语</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table>
<table width=100% >
<tr>
<td class=a14><b> 四、初始化变量 </b></td>
</tr>
<tr>
<td class=a14>需要初始化的变量仅有一个m_eMenu。由于开始时菜单使用默认中文菜单,所以在CMainFrame构造函数中初始化:</td>
</tr>
</table>
<table width=100% ><tr><td class=a14>
CMainFrame::CMainFrame()</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
// TODO: add member initialization code here</td></tr></table><table width=100% ><tr><td class=a14>
m_Menu=C;</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table>
<table width=100% >
<tr>
<td class=a14><b> 五、调入保存菜单资源 </b></td>
</tr>
</table>
<table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
<td class=a14> 在主窗口的OnCreate函数中,初始化并保存菜单资源: </td>
</tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
.......</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
m_pEnglish.LoadMenu(IDR_MAINFRAME_EN);\\调入英文菜单资源 </td></tr></table><table width=100% ><tr><td class=a14>
HMENU hm=::GetMenu(this- >m_hWnd) ;\\获得中文菜单资源</td></tr></table><table width=100% ><tr><td class=a14>
m_pChinese.Attach(hm); \\保存中文菜单资源</td></tr></table><table width=100% ><tr><td class=a14>
return 0;</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table>
<table width=100% >
<tr>
<td class=a14><b> 六、响应改变菜单命令 </b></td>
</tr>
</table>
<table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
<td class=a14> 利用ClassWizard为CMainFrame类加入ID_MENU_CHANGE菜单命令响应函数: </td>
</tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
void CMainFrame::OnMenuChange() </td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
// TODO: Add your command handler code here</td></tr></table><table width=100% ><tr><td class=a14>
if(m_Menu==E) //如果现在菜单为英语</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
SetMenu(&m_pChinese);// 把菜单设置为汉语</td></tr></table><table width=100% ><tr><td class=a14>
m_Menu=C;</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
else if(m_Menu==C) //如果现在菜单为汉语</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
SetMenu(&m_pEnglish);//设置菜单为英语</td></tr></table><table width=100% ><tr><td class=a14>
m_Menu=E;</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table>
<table width=100% >
<tr>
<td class=a14><b> 七、销毁菜单 </b></td>
</tr>
</table>
<table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
<td class=a14> 在CMainFrame的析够函数中销毁菜单: </td>
</tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
CMainFrame::~CMainFrame()</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
m_pChinese.DestroyMenu(); </td></tr></table><table width=100% ><tr><td class=a14>
m_pEnglish.DestroyMenu(); </td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
<td class=a14> 编译运行程序您就可以获得一个具有英汉对照菜单的应用程序。 </td>
</tr></table><table width=100% ><tr><td class=a14>
</td></tr></table>
<table width=100% >
<tr>
<td class=a14><b> 八、结束语 </b></td>
</tr>
</table>
<table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
<td class=a14> 上述例子虽然只给除了两种语言的菜单,但很容易编出多语言菜单的应用程序。由于各种语言菜单实际上是不同的菜单资源,所以,在同一应用程序中,可以使用不同的菜单。如共享软件中注册的用户使用一种菜单,未注册的用户使用另一种菜单,而不必发行多个版本和多次安装,从而使注册变得容易并能得到软件更多的功能。</td>
</tr>
</table><br>
<style>.a1{font-size:1}</style>
<table width=100% ><tr><td align=right>(网页编辑:<a href='mailto:liu_yang@ccw.com.cn'>风之翼</a>)</td></tr></table>
</td><td class=a1 bgcolor=#f46240> </td>
<td valign=top width=138 align=right><table width=98% ><tr><td>
<form action='/app/gsearch1.asp' name=pdn><table width=100% ><tr><td>应用与方案
频道全文检索</td></tr>
<tr><td><input type="text" name="textfile" size=15 value=频道内检索 onfocus="this.value=''">
<input border=0 src="../../../../../images/jian.gif" name="I1" type="image" align=absmiddle>
</td></tr>
</table>
</form>
<form name=srch action="/search/which.asp" method=post onsubmit="JavaScript:return chk()">
<table width=100% >
<tr><td><select size="1" name="func">
<option selected value="2">主题检索</option>
<option value="1">周报全文检索</option>
<option value="3">模糊词检索</option>
</select></td></tr>
<tr><td><input type="text" name="SrchStr" size=15 value="输入待检索的词"
onfocus="this.value=''">
<input src="../../../../../images/jian.gif" name="I1" type="image" align="absMiddle" border=0>
</td></tr>
</table>
<script language="JavaScript">
function chk()
{if (!document.srch.SrchStr.value){
alert("请输入需检索的词!");
document.srch.SrchStr.focus();
return false;
}
else{if (document.srch.SrchStr.value.length>30){
alert("检索的词请不要超过30个字符!");
document.srch.SrchStr.focus();
return false;
}
}
}
</script></form>
<table width=100% ><tr><td class=f colspan=2><b>相关文章</b></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_12_6.asp.html'>自绘菜单的实现</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_12_5.asp.html'>为CListBox加上智能水平滚动条</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_12_4.asp.html'>制作VC表格控件</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_12_3.asp.html'>Visual C++中位图按钮的新颖设计</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_12_2.asp.html'>改变Push Button背景色</a></td></tr>
</table>
</td></tr></table></td></tr></table><br>
<table align=center width=680><tr><td align=right>
<form name=mail method=post action='/pub/subMail.asp' onsubmit='JavaScript: return chkField(this)'>
<INPUT type='hidden' name='rec' value='23972'>
您的姓名:<INPUT type="text" name=myName size=10>
您朋友的E-mail:<INPUT type="text" name=friendMail size=10>
<INPUT type="submit" value="推荐给好友">
</form>
</td></tr>
<tr><td align=right>
<b>[<a href="javascript:window.close()">关闭窗口</a>]</b>
</td></tr>
</table>
<script language="javascript">
function chkField(fmObj)
{if (!fmObj.friendMail.value){
alert("请输入您朋友的E-mail!");
fmObj.friendMail.focus();
return false;
}
return true;
}
</script>
<table align=center width=680>
<tr><td><hr size=1 width=660 color=#f46240></td></tr>
</table><br>
<p align=center>Copyright(C) ccw.com.cn,All rights reserved</p>
<p align=center><b>中国计算机世界出版服务公司版权所有</b></p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -