-
<script type="text/javascript"> </script> <script src="http://ggmm.csdn.net/AD/Show_JavaScript_AD.js" type="text/javascript"></script> <script src="http://ggmm.csdn.net/AD/ShowJavaScriptAD.aspx?show=true&position=%7Be025b96b-2fda-4e82-84ef-3e0772838ed3%7D&CharSet=gb2312" language="JavaScript1.1" type="text/javascript"></script>
<script src="http://news.csdn.net/ad/news_textlink.js" type="text/javascript"></script>無論怎麼編輯,編譯出來的菜單都是默認的。因爲RES目錄的rc2資源文件VS2005沒有改。總是這樣的:IDR_MAINFRAME SHMENUBAR DISCARDABLE
BEGIN
IDR_MAINFRAME,
1,
I_IMAGENONE, IDOK, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE,
IDS_OK, 0, NOMENU,
END所以,無論怎麼編輯都不行。解決方法:先改一下這個文件再編輯菜單。比如說,改成這樣:IDR_MAINFRAME SHMENUBAR DISCARDABLE
BEGIN
IDM_MENU,
2,
I_IMAGENONE, IDOK, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE,
IDS_OK, 0, NOMENU,
I_IMAGENONE, IDM_MENU, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_MENU, 0, 0,
END那麼,需要在編輯器中創建一個ID爲IDM_MENU的菜單條,再建立一個IDS_MENU的字符串資源,改字符串就是顯示出來的菜單的名字。經過後續查證,VS2005針對Smartphone的菜單編輯器就是這樣設計的,也就是在菜單編輯器中編輯的只是菜單的內容,這些內容是保存在rc文件中的,而菜單條是作爲RCDATA保存在rc2資源文件中。其思路應該源於WM5.0對與菜單的全新設計。在WM5.0中,無論是ppc中的菜單還是sp中的菜單,都是一樣的,即支持左右軟鍵,左右軟鍵 分別可以彈出一個菜單。所以,微軟認爲這個東西不是菜單,是工具條,而真正的菜單是左右軟鍵彈出的那個東西。所以,在菜單編輯器中編輯的是左右軟鍵彈出的 菜單,而在rc2文件中保存的是工具條的定義。也就是說,我們把編輯菜單的問題稱爲Bug也好,稱爲其他也好,但是總而言之,現在基於Smpartphone和wm5.0的本地代碼開發,對於“工具條”的定義需要我們自己手動完成了。針對RCDATA的定義,有一些說明:IDR_MAINFRAME SHMENUBAR DISCARDABLEIDR_MAINFRAME是在程序中load工具條的ID,在resources.h中定義一個ID就可以了。SHMENUBAR DISCARDABLE不清楚,照抄就可以了。
BEGIN
IDM_MENU,IDM_MENU是在菜單編輯中編輯菜單的ID,此菜單對於smartphone2003來說,橫向的定義只能有一項(且文字內容是什麼無關緊要),因爲smartphone2003只支持左右鍵中一個是彈出菜單。對於wm5.0來說,可以有兩項(尚未驗證)。
2,
1或者2,取決於要左鍵還是左右都要。
I_IMAGENONE, IDOK, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE,
IDS_OK, 0, NOMENU,如果是button性質的,要定義爲TBSTYLE_BUTTON,並且最後是NOMENU。IDOK爲在資源頭文件中隨便定義的ID就可以,IDS_OK對應的字符串資源是將來顯示的內容。
I_IMAGENONE, IDM_MENU, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_MENU, 0, 0,如果是彈出式菜單,定義爲TBSTYLE_DROPDOWN,且最後一位爲0。IDM_MENU爲在資源頭文件中隨便定義的ID就可以。
ENDEND之後一定要加一個回車,否則編譯報fatal error RC1004的錯誤。更詳細的內容,可以看一下這個網址:
VS2005開發本地代碼Smartphone程序,菜單編輯器有嚴重Bug
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.