如題,BeginThread創建了一個執行緒,在執行緒中 MovtoEx , Lineto畫圖代碼沒有顯示效果。。如果代碼移除執行緒外呼叫就沒問題。
uj5u.com熱心網友回復:
涉及到vcl的更新,是不是應該用執行緒的那個 Synchronizeuj5u.com熱心網友回復:
沒有代碼的文字性故障描述是沒有意義的。uj5u.com熱心網友回復:
是Canvase.大致代碼如下:
void StartGifPlay(HDC Hdc, WORD x, WORD y, TMemoryStream* str , bool bStream) //播放GIF影片
{
Cs.Hdc = Hdc; //// Hdc為form上的一個 frmShow->img->Canvas->Handle ;
BeginThread(0,0, (TThreadFunc )ShowImg,( LPVOID )(&Cs),0,0); //開啟新行程以播放GIF
}
long __fastcall ShowImg(LPVOID pParam)
{
Cs * pcs = (Cs *)pParam;
HDC dc = pcs ->Hdc ;
MovetoEx(dc,0,0,0);
Lineto(dc,100,100); <<===這兩句繪圖代碼無效,界面上看不到效果
return 0;
}
=========
如果把畫圖代碼放在執行緒外就沒問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/112995.html
標籤:基礎類
上一篇:stm32
