看板 C_and_CPP 關於我們 聯絡資訊
Visual C++ (Win32 api) 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) Visual C++ (Win32 api) 問題(Question): 寫一個類似 小畫家的程式. 但我發現在畫線時,用 invalidate()重畫只會 畫出這次要畫的線段, 之前的線段會不見 例如: 若線段上有 (x0, y0)連到 (x1, y1) 再連到 (x2, y2) --> (x3, y3) 但每次只出現: (x0, y0) --> (x1, y1) 下一時間只出現:(x1, y1) --> (x2, y2); (x0, y0) --> (x1, y1)那段不見了.. 我的code 大致上是: http://paste.plurk.com/show/2198891/ 請各位協助.. 希望能連在一起, 難道真的要將所有的點都存起來, 然後每次重畫時都要 從 第0點畫到第N點, 下一刻就要從第0點畫到第N+1點??? 謝謝... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.239.41.43 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1435989180.A.F7E.html
stupid0319: 應該想辦法把之前畫的XY都存起來吧?? 07/04 14:07
greenlinux: 請問難道小畫家也是每次都重畫所有點的嗎? 07/04 14:37
remizu: 我想會不見是因為每次都建立新的DC跟bitmap 07/04 14:41
remizu: 把它們存起來重複利用應該就不用重畫 07/04 14:43
Dforce: 同意樓上 好像也可以先擷取原來的圖再畫新的 07/04 19:01
Dforce: 只是我沒試過 不知道下面這個連結有用嗎? 07/04 19:02
Dforce: http://tinyurl.com/oe27kq4 msdn capturing an Image 07/04 19:03
os653: 我記得以前看過類似的程式也是把之前畫的都存起來 07/04 19:15
os653: 可能是因為還要有redo跟undo功能,存起來比較方便 07/04 19:16
greenlinux: 謝謝各位意見 07/04 19:35
greenlinux: 請問還有什麼範例可提供給我參考嗎?謝 07/04 19:37
EdisonX: 小畫家是蠻多可以練的東西 , 像是 design pattern ... 07/04 23:25
linotwo: http://codepad.org/XHOD8afy 陽春版小畫家 07/05 20:13
linotwo: CreateDIBSection 會回傳點陣圖的 HANDLE 及記憶體位址 07/05 20:14
linotwo: 可以用 GDI 也可以直接存取記憶體 07/05 20:15
linotwo: 畫完用 UpdateLayeredWindow 直接更新 07/05 20:17
ahabook: hMemBmp不要砍掉他就是你畫面上的資料你就一值重複畫上去 07/07 16:34