標籤:
我不會取標題,大體上我想用win32,模仿windows的記事本,寫個記事本程式,最後讓我的程式和微軟的程式在外觀和功能上都差不多。這樣一來我可以學到一些新知識,鞏固舊的知識。
一、首先做個功能表列吧。建個menu.rc檔案,參照微軟的記事本,裡面寫上這些:
1 //menu.rc 2 3 #define IDM_MAIN 0x2000 4 #define IDM_NEW 0x4101 5 #define IDM_OPEN 0x4102 6 #define IDM_SAVE 0x4103 7 #define IDM_SAVEAS 0x4104 8 #define IDM_SETTING 0x4105 9 #define IDM_PRINT 0x410610 #define IDM_EXIT 0x410711 12 #define IDM_DUDO 0x420113 #define IDM_CUTE 0x420214 #define IDM_COPY 0x420315 #define IDM_PASTE 0x420416 #define IDM_DELETE 0x420517 #define IDM_FINDE 0x420618 #define IDM_FINDENEXT 0x420719 #define IDM_REPLACE 0x420820 #define IDM_GOTO 0x420921 #define IDM_SELETEALL 0x421022 #define IDM_DATE 0x421123 24 25 #define IDM_WORDWRAP 0x430126 #define IDM_FONT 0x430227 28 #define IDM_STATUS 0x440129 30 #define IDM_HELP 0x450131 #define IDM_ABOUT 0x450232 33 34 IDM_MAIN menu discardable35 BEGIN 36 popup "檔案(&F)"37 BEGIN38 menuitem "建立(&N)", IDM_NEW39 menuitem "開啟檔案(&O)", IDM_OPEN40 menuitem "儲存(&S)", IDM_SAVE41 menuitem "另存新檔(&A)", IDM_SAVEAS42 menuitem separator43 menuitem "版面設定(&U)", IDM_SETTING44 menuitem "列印(&P)", IDM_PRINT45 menuitem separator46 menuitem "退出(&E)", IDM_EXIT47 END48 popup "編輯(&E)"49 BEGIN50 menuitem "撤銷(&U)", IDM_DUDO GRAYED 51 menuitem separator52 menuitem "剪下(&T)", IDM_CUTE GRAYED 53 menuitem "複製(&C)", IDM_COPY GRAYED 54 menuitem "粘貼(&P)", IDM_PASTE55 menuitem "刪除(&L)", IDM_DELETE GRAYED 56 menuitem separator57 menuitem "尋找(&F)", IDM_FINDE GRAYED 58 menuitem "尋找下一個(&N)",IDM_FINDENEXT GRAYED 59 menuitem "替換(&R)", IDM_REPLACE60 menuitem "轉到(&G)", IDM_GOTO GRAYED 61 menuitem separator62 menuitem "全選(&A)", IDM_SELETEALL63 menuitem "時間日期(&D)", IDM_DATE 64 end65 popup "格式(&O)"66 BEGIN67 menuitem "自動換行(&T)", IDM_WORDWRAP68 menuitem "字型(&T)", IDM_FONT69 END70 popup "查看(&V)"71 BEGIN72 menuitem "狀態列(&S)", IDM_STATUS GRAYED 73 END74 popup "協助(&H)"75 BEGIN76 menuitem "查看協助(&H)", IDM_HELP77 menuitem separator78 menuitem "關於記事本(&A)", IDM_ABOUT79 END80 END
最後在主程式的建立視窗函數中,把功能表列的控制代碼傳進去
hwnd = CreateWindow (szAppName, TEXT ("無標題-記事本"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, LoadMenu(hInstance,MAKEINTRESOURCE(IDM_MAIN)), hInstance, NULL) ;
這樣運行程式,功能表列就出來了
功能表列的寫法可以參考“windows sdk編程系列文章"。作者不知道是誰
win32記事本程式(一)