快樂蝦http://blog.csdn.net/lights_joy/
本文適用於
wxwidgets-
2.8.8
vs2008
windows xp在vc
下使用資源,通常都是先在
resource.h
中定義乙個整數,比如:
#define
idi_lightning_r200
// 程式圖示
然後在resource.rc
中定義這個圖示:
idi_lightning_ricon
"icons//lightning_r.ico"
讀取圖示的時候則用:
::loadicon(h, makeintresource(idi_lightning_r));
這樣的形式。用
wxwidgets
也想當然地這樣做了,結果用
pmainwnd->seticon(wxicon(idi_lightning_r));
無論如何不起作用。
看了下wxwidgetes
**:
#define
wxicon(x) wxicon(wxt(#x))
直接將idi_lightning_r
轉換成了乙個字串,呼叫
wxicon
的建構函式。
wxicon::wxicon(
const
wxstring& iconfile,
long
flags,
intdesiredwidth,
intdesiredheight)
往下看loadfile:
bool
wxicon::loadfile(
const
wxstring& filename,
long
type,
intdesiredwidth,
intdesiredheight)
return
handler->load(
this
, filename, type, desiredwidth, desiredheight);
}嗯,查詢讀取圖示的
handler
,然後用它來完成實際操作,圖示的
handler
由wxicoresourcehandler
這個類來完成,看其
load
方法:
virtual
bool
load(wxgdiimage *image,
const
wxstring& name,
long
flags,
intdesiredwidth,
intdesiredheight)
轉為loadicon:
bool
wxicoresourcehandler::loadicon(wxicon *icon,
const
wxstring& name,
long
wxunused(flags),
intdesiredwidth,
intdesiredheight)
else
…………………
..
wxsize size = wxgethiconsize(hicon);
icon->setsize(size.x, size.y);
icon->sethicon((wxhicon)hicon);
return
icon->ok();
}最終的讀取操作同樣將由
loadicon
這個windows api
完成,它必須接受乙個字串做為引數,在
wxwidgets
中,從開始傳遞進來的就是
」idi_lightning_r」
這樣乙個字串,它並沒有使用
makeintresource
轉換得到的字串,因而自然無法正常讀取資源。 比較
wxwidgets
自己的resource.rc
檔案,它並沒有使用
resource.h
,自然也沒有將這個資源標誌定義為整數。呵呵,原來如此。 在
resource.rc
中修改圖示的定義:
lightning_ricon
"icons//lightning_r.ico"
這裡lightning_r
是乙個未定義的符號,這樣
vc的資源編譯將把它做為乙個字串處理,並以此為這個圖示的標識,最後讀取圖示的時候用:
pmainwnd->seticon(wxicon(lightning_r));
一切ok!
用
dll方式編譯
wxwidgets-2.8.8
(
2008-9-6
)
wxwidgets和
mfc動態型別資訊比較
(2008-9-7)
wxwidgets程式鏈結錯誤解決
(
2008-10-24
)
從
animate
示例看wxwidgets
的程式結構
(
2008-10-25
)
過載
wxartprovider
改寫wxwidgets
圖示(
2008-10-25
)
在
vs2008
下使用wxwidgets
的詭異問題
(
2008-10-28
)
wxWidgets資源索引
一 站點 1 官方主頁 http www.wxwidgets.org 2 wx的wiki http wiki.wxwidgets.org main page 3 wx中國愛好者 http www.wxwidgets.cn 4 英文嚮導 http zetcode.com tutorials wxwid...
wxWidgets資源索引
本文目標 幫助wx庫初學者快速的找到他們所需要的資源。如果您有更好的資料,歡迎回帖交流。本文將不定期的更新。一 站點 1 官方主頁 2 wx的wiki 3 wx中國愛好者 4 英文嚮導 5 英文論壇 二 部落格 1 蝸牛檔案室 blog.csdn.net snaill 2 kenlistian 3 ...
wxWidgets 編譯 ICON 資源
要想在編譯時將資源檔案包含到可執行檔案中,需要通過 resource.rc 檔案指定資源檔案 resource.rc aaaa icon wx msw std.ico amainicon icon res lock.ico fileicon icon res file.ico foldericon ...