windows視覺化程式設計 五

2021-08-05 20:27:04 字數 4727 閱讀 9444

這章總結一下資源的編寫。

資源主要 分為五個部分,分別是選單,加速鍵,位圖,對話方塊和圖示。

①首先看選單和加速鍵的操作,選單再資源檔案編寫範例如下:

#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,在工具欄選擇第...