windows多執行緒視窗程式設計

2022-05-02 09:54:08 字數 3574 閱讀 8743

掌握windows基於訊息驅動的視窗應用程式設計的基本方法,掌握視窗程式資源的概念與設計,掌握常用的訊息的程式處理方法,掌握文字圖形輸出相關函式程式設計。掌握設計的基本方法(選項),掌握時鐘訊息設計動畫程式(選項)

利用windows基於訊息驅動的視窗應用程式設計的基本方法,利用常用的訊息程式處理方法,設計乙個多執行緒程式,然後用時鐘動畫將各執行緒的執行過程直觀的表現出來。

操作環境:安裝有windows作業系統pc機一台,實驗環境為vs(任何版本都行).

1.在vs中,生成乙個空白的win32專案,了解win32的訊息驅動,學習視窗程式資源的概念與設計,並為程式設計乙個位圖圖示。

2. 觀察win32程式基本結構,了解常用的訊息的程式處理方法,掌握文字圖形輸出相關函式程式設計,並練習文字與圖形的輸出。

3.設計並構建程式使用者介面

選單欄

執行緒設定對話方塊

選單與對話方塊函式如下:

// 分析選單選擇:

lresultcallbackwndproc(hwndhwnd, uintmessage, wparamwparam, lparamlparam)

break;

caseidreset:

pausecount=resumethread((handle)threadid[treatwith]);

pausecount=resumethread(threadhandle[treatwith]);

if(pausecount==-1)

break;

}

break;

caseidm_exit:

destroywindow(hwnd);

break;

default:

returndefwindowproc(hwnd, message, wparam, lparam);

}

break;

casewm_size:

wndwidthsize=loword(lparam);

wndhighsize=hiword(lparam);

break;

casewm_paint:

hdc = beginpaint(hwnd, &ps);

//textout(hdc,100,50,_t("south west university"),wcslen(_t("south west university")));

// todo: 在此新增任意繪圖**...

endpaint(hwnd, &ps);

break;

casewm_destroy:

postquitmessage(0);

break;

default:

returndefwindowproc(hwnd, message, wparam, lparam);

}

return0;

}

// "開始"對話方塊的訊息處理程式。

int_ptrcallbackabout(hwndhdlg, uintmessage, wparamwparam, lparamlparam)

if(loword(wparam) == idpause)

if(loword(wparam) == idreset)

if(loword(wparam) == idstart)

break;

}

return(int_ptr)false;

}

4.編寫多執行緒建立函式,建立多個執行緒,編寫動畫繪圖函式繪製圖形,每個執行緒都呼叫繪圖函式,在使用者區中繪製動畫,以直觀表現執行緒的執行。具體**如下:

//執行緒建立

voidcreatethreadstart(hwndhwnd)

else

threadxuhao++;

}

}

//繪圖

dwordwinapipaintthread(lpvoidlpparam)

releasedc(hwnd,hdc);

return1;

}

五. 實驗結果

程式執行結果如下:

其中,程序3被暫停。

Windows多執行緒程式設計

一 問題的提出 編寫乙個耗時的單執行緒程式 新建乙個基於對話方塊的應用程式singlethread,在主對話方塊idd singlethread dialog新增乙個按鈕,id為idc sleep six second,標題為 延時6秒 新增按鈕的響應函式,如下 void csinglethread...

windows多執行緒程式設計

程序 乙個執行的程式,記憶體,cpu時間等都歸程序所有.執行緒 cpu排程的最小單位,乙個程序內的多個執行緒共享4g記憶體.程式的乙個執行路徑 1.最基礎的使用方法.createthread,exitthread,closehand include include createthread,exit...

Windows多執行緒程式設計

函式原型 handlewinapi createthread lpsecurity attributes lpthreadattributes,size t dwstacksize,lpthread start routine lpstartaddress,lpvoid lpparameter,dw...