wxWidgets的資源讀取

2021-04-21 10:55:09 字數 2977 閱讀 7422

快樂蝦http://blog.csdn.net/lights_joy/

[email protected]

本文適用於

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 ...