這章總結一下資源的編寫。
資源主要 分為五個部分,分別是選單,加速鍵,位圖,對話方塊和圖示。
①首先看選單和加速鍵的操作,選單再資源檔案編寫範例如下:
#include "c:\prog_book\7_1\7_1.h"
#include "windows.h"
menu menu discardable
begin
popup "檔案(&f)"
begin
menuitem "建立統計計算選單項(&p)\t ctrl+p", idm_addmenu
menuitem "刪除統計計算選單項(&d)\t ctrl+d", idm_delmenu, grayed
menuitem separator
menuitem "退出(&x)", idm_exit
endmenuitem "幫助(&h)", idm_help
endmenu accelerators moveable pure
begin
"^p", idm_addmenu, ascii
"^d", idm_delmenu, ascii
end
期中idm_addmenu 這些都是自己定義的表示,其實都是數字,需要再標頭檔案宣告,再看下主函式
②位圖#include "windows.h"
#include "7_1.h"
hmenu hmenu,haddmenu; //定義選單控制代碼
lresult callback wndproc(hwnd,uint,wparam,lparam);
int winapi winmain(hinstance hinstance,hinstance hprevinst,lpstr lpszcmdline,int ncmdshow)
hwnd = createwindow(lpszclassname,
lpsztitle,
cw_usedefault,
cw_usedefault,
cw_usedefault,
cw_usedefault,
null,
null,
hinstance,
null) ;
showwindow( hwnd, ncmdshow) ;
updatewindow(hwnd);
//載入加速鍵資源
haccel=loadaccelerators(hinstance,lpszmenuname);
while( getmessage(&msg, null, 0, 0))
}return msg.wparam;
}
lresult callback wndproc(hwnd hwnd,uint message,wparam wparam,lparam lparam)
break;
case wm_destroy:
postquitmessage(0);
break;
default:
return defwindowproc(hwnd,message,wparam,lparam);
}return 0;
}
加速鍵資源需要loadaccelerators(hinstance,lpszmenuname)並重寫訊息獲取函式
if (!translateaccelerator(hwnd,haccel,&msg))
主函式
#include #include #include #include lresult callback wndproc(hwnd,uint,wparam,lparam);
//定義變數
hdc hdc; //裝置環境控制代碼
hdc hdcmem; //記憶體裝置環境控制代碼
hbitmap hbm; //位圖控制代碼
bitmap bm; //bitmap結構
int winapi winmain( hinstance hinstance,
hinstance hprevinst,
lpstr lpszcmdline,
int ncmdshow)
hwnd = createwindow( lpszclassname,
lpsztitle,
cw_usedefault,
cw_usedefault,
cw_usedefault,
cw_usedefault,
null,
null,
hinstance,
null) ;
//載入位圖
hbm=loadbitmap(hinstance,"pic7");
//獲取位圖尺寸
getobject( hbm, sizeof( bitmap), (lpvoid)&bm) ;
showwindow( hwnd, ncmdshow) ;
updatewindow(hwnd);
while( getmessage(&msg, null, 0, 0))
return msg.wparam;
}lresult callback wndproc(hwnd hwnd,uint message,wparam wparam,lparam lparam)
return 0;
}
資源檔案
//位圖示例.rc
pic7 bitmap pic7_2.bmp //定義位圖資源
③對話方塊
#include #include "7_3.h"
hinstance hinst;
lresult callback wndproc(hwnd,uint,wparam,lparam);
bool callback dlgproc(hwnd,uint,wparam,lparam);
int winapi winmain( hinstance hinstance,hinstance hprevinst,
lpstr lpszcmdline,int ncmdshow)
hwnd = createwindow(lpszclassname,
lpsztitle,
cw_usedefault,
cw_usedefault,
cw_usedefault,
cw_usedefault,
null,
null,
hinstance,
null);
showwindow( hwnd, ncmdshow) ;
updatewindow(hwnd);
hinst=hinstance;
haccel=loadaccelerators(hinst,lpszmenuname);
while( getmessage(&msg, null, 0, 0))
}return msg.wparam;
}
lresult callback wndproc(hwnd hwnd,uint message,wparam wparam,lparam lparam)
break;
case wm_destroy:
postquitmessage(0);
break;
default:
return defwindowproc(hwnd,message,wparam,lparam);
} return 0;
} //對話方塊視窗處理函式
bool callback dlgproc(hwnd hdlg,uint message,wparam wparam,lparam lparam)
break ;
case wm_close:
enddialog( hdlg, 0) ;
return 1;
}return 0;
}
可以利用messagebox之際彈出乙個模態框,也可以自己在資源檔案中定義:
#include #include "7_3.h"
menu menu discardable
popup "幫助(&h)"
}
menu accelerators
about dialog 10, 10, 100, 50
style ws_popup | ws_caption | ws_sysmenu
caption "關於"
font 18, "楷體" //定義對話方塊中的文字字型型別及大小
④ 圖示
定義示例
tree icon c:\prog_book\7_6\tree.ico
windows視覺化程式設計 二
這節總結下筆刷的使用,首先看程式 include include includelong winapi wndproc hwnd hwnd,uint imessage,uint wparam,long lparam bool initwindowsclass hinstance hinstance ...
windows視覺化程式設計 三
這章總結下文字操作,先上乙個簡單的文字輸出程式 lresult callback wndproc hwnd hwnd,uint imessage,uint wparam,long lparam switch imessage 處理訊息 textmetric 利用這個結構體我們可以在輸出前呼叫gett...
視覺化程式設計storyBoard
1.針對空模板,先把自動建立的window刪除 2.建立乙個storyboard 3.在general中將maininte ce選為建立的storyboard 4.新建立的storyboard裡什麼也沒有,拖拽乙個viewcontroller上去 5.選中viewcontroller,在工具欄選擇第...