[問題] 用win32 api 寫類似小畫家的程式問題

作者: greenlinux (GreenLinux)   2015-07-04 13:52:57
Visual C++ (Win32 api)
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
Visual C++ (Win32 api)
問題(Question):
寫一個類似 小畫家的程式. 但我發現在畫線時,用 invalidate()重畫只會
畫出這次要畫的線段, 之前的線段會不見
例如: 若線段上有 (x0, y0)連到 (x1, y1) 再連到 (x2, y2)
作者: stupid0319 (徵女友)   2015-07-04 14:07:00
應該想辦法把之前畫的XY都存起來吧??
作者: greenlinux (GreenLinux)   2015-07-04 14:37:00
請問難道小畫家也是每次都重畫所有點的嗎?
作者: remizu (remizu)   2015-07-04 14:41:00
我想會不見是因為每次都建立新的DC跟bitmap把它們存起來重複利用應該就不用重畫
作者: Dforce (VF-17)   2015-07-04 19:01:00
同意樓上 好像也可以先擷取原來的圖再畫新的只是我沒試過 不知道下面這個連結有用嗎?http://tinyurl.com/oe27kq4 msdn capturing an Image
作者: os653   2015-07-04 19:15:00
我記得以前看過類似的程式也是把之前畫的都存起來可能是因為還要有redo跟undo功能,存起來比較方便
作者: greenlinux (GreenLinux)   2015-07-04 19:35:00
謝謝各位意見請問還有什麼範例可提供給我參考嗎?謝
作者: EdisonX (卡卡獸)   2015-07-04 23:25:00
小畫家是蠻多可以練的東西 , 像是 design pattern ...
作者: linotwo (._.)   2015-07-05 20:13:00
http://codepad.org/XHOD8afy 陽春版小畫家CreateDIBSection 會回傳點陣圖的 HANDLE 及記憶體位址可以用 GDI 也可以直接存取記憶體畫完用 UpdateLayeredWindow 直接更新
作者: ahabook (無聊的書)   2015-07-07 16:34:00
hMemBmp不要砍掉他就是你畫面上的資料你就一值重複畫上去

Links booklink

Contact Us: admin [ a t ] ucptt.com