[問題] gtk+ 改變視窗大小
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
linux gcc
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
gtk+
我現在想用gtk+ 顯示一張圖, 然後改變窗口大小時 圖像大小也會隨窗口大小改變
我嘗試用 gtk_signal_connect 的 "expose-event"
與"size_request" 都不盡理想
用expose-event 會只能拉大不能拉小
用size_request 更慘 不但只能拉大不能拉小 在拉伸過程還超lag
程式碼如下:
http://codepad.org/n8nLPTNz
假設程式碼檔名叫 winresize.cpp 編譯則是:
g++ `pkg-config --libs --cflags gtk+-2.0` -fpermissive winresize.cpp -o
winresize
解釋一下:
function readBMP 用來讀bmp檔的函數 我丟進去的圖是叫
dragonAge_640x480.bmp
( 這張 http://0rz.tw/8EGNv)
flag INVERSE 是指明bmp由前向後還是由後向前 這裡是後向前
176~ 186 行 標準的gtk顯示圖像做法, 圖像資料在記憶體
unsigned char *pImageData 中
flag EXPOSE_EVENT: 開啟是用 "expose-event" 事件來觸發改變圖像
沒開啟則是用"size_request" 觸發
87~161 則是寫了兩個 callback 函數ResizeImage 去對應是否
flag EXPOSE_EVENT 有無開啟 這code寫的有點亂 因為怎試都不行 0.0
還請高手釋疑 謝謝
總覺的該不難 但怎都弄不出來..
當然最好是用size_request 來觸發比較好嚕
感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.115.132.79
※ 編輯: DrStein 來自: 58.115.132.79 (06/26 01:18)
推
06/26 10:46, , 1F
06/26 10:46, 1F
那請問我該怎寫才對呢 還請大大幫忙給予指點 謝謝
※ 編輯: DrStein 來自: 58.115.132.79 (06/26 14:13)
推
06/26 16:20, , 2F
06/26 16:20, 2F
→
06/26 16:21, , 3F
06/26 16:21, 3F
推
06/26 16:24, , 4F
06/26 16:24, 4F
→
06/26 16:25, , 5F
06/26 16:25, 5F
※ 編輯: DrStein 來自: 58.115.132.79 (06/26 17:03)
→
06/26 17:04, , 6F
06/26 17:04, 6F
→
06/26 17:05, , 7F
06/26 17:05, 7F
→
06/26 17:06, , 8F
06/26 17:06, 8F
推
06/26 22:30, , 9F
06/26 22:30, 9F
→
06/26 23:39, , 10F
06/26 23:39, 10F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章