freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

egg安裝和使用手冊(cè)(參考版)

2025-07-02 07:00本頁(yè)面
  

【正文】 宏定義define TOP (INT_MAX) 頂層 define BOTTOM (INT_MIN+1) 底層 類型定義typedef egg * HEGG egg 的句柄 函數(shù)HEGG LayEgg (void) 下蛋, ^_^ void EatEgg (void) 吃蛋, ^_^ void SetActiveEgg (HEGG hEgg) 設(shè)置活動(dòng)蛋 HEGG GetActiveEgg (void) 得到活動(dòng)蛋句柄 void MoveEgg (double x, double y) 在盤子上移動(dòng) egg 到指定位置 void OffsetEgg (double dx, double dy) 在盤子上把 egg 移動(dòng)指定的距離 void ChangeEggLayer (int nOffset) 改變活動(dòng) egg 的層 void ShowEgg (int bShow) 顯示或隱藏 egg double GetEggXPos (void) 得到 egg 在盤子內(nèi)的 X 坐標(biāo) double GetEggYPos (void) 得到 egg 在盤子內(nèi)的 Y 坐標(biāo) void StartTimer (unsigned int uMillisecond) 啟動(dòng)周期定時(shí)器 void StopTimer (void) 停止周期定時(shí)器 int WaitFor (unsigned int uMillisecond) 延時(shí)函數(shù) void SetAutoUpdate (int bAuto) 設(shè)置是否自動(dòng)更新屏幕 void Update (void) 更新 Egg 窗口 。通過它們可以建立新的 egg,移動(dòng) egg 的位置以實(shí)現(xiàn)動(dòng) 畫效果。通過它們可以得到用戶按下了哪些 鍵盤和鼠標(biāo)按鍵,并能得知鼠標(biāo)指針的位置。通過它們不僅可以繪制曲線和圓形,而且可 以改變顏色、線粗、字體和填充色,還可以張貼位圖。通過它們可以建立圖形窗口( Egg 平臺(tái)稱 它為盤子) ,并能在其上繪制簡(jiǎn)單的圖形和文字。用如下的步驟可以生成不帶調(diào)試信息的執(zhí)行文件: 1. 點(diǎn)菜單 BuileBatch Build...; 2. 選中含有“Release”字樣的項(xiàng); 3. 點(diǎn)“Rebuild All”; 4. 編譯結(jié)束后,到項(xiàng)目的 Release 目錄下找執(zhí)行文件,發(fā)布之。 程序編譯通過后,在項(xiàng)目的目錄下會(huì)有一個(gè) Debug 子目錄,其內(nèi)有一個(gè)用你的 文件,它是能脫離 VC 和 Egg 而獨(dú)立運(yùn)行,可以把它發(fā)布出去。 發(fā)布如果能把自己精心做好的程序給一個(gè)沒有 VC 也沒有 Egg 的人使用,是非常美妙的事情。安裝新版本的 Egg 可以對(duì)系統(tǒng)進(jìn)行升級(jí),但對(duì)我們的程序無效,除非重新生成工程。 這樣備份后, 文件,就能立刻開始繼續(xù)編程了。 除此以外,如果你用靜態(tài)庫(kù)方式建立的工程,那么還要備份: ? 和 文件,沒有它們就不能使用 Egg 的功能。其它文件沒有了,都可以想辦法恢復(fù)。把整個(gè)項(xiàng)目的目錄都打包保存,這是最簡(jiǎn)單的備份方法,但也會(huì)浪費(fèi)很多的存儲(chǔ)空間,因?yàn)檫@個(gè)目錄下有很多文件是編譯器的產(chǎn)物,只要有源代碼,每次編譯都會(huì)自動(dòng)生成,沒必要特別保存。此頁(yè)面將告訴你如何做這些事情。 }}StopTimer()。 case KEYDOWN: //響應(yīng)按鍵按下事件 break。while ((ev = WaitForEvent()) != EXIT) { switch (ev) { case TIMER: //響應(yīng)周期事件 break。 下面代碼可作為一個(gè)全功能的交互框架: EVENT_TYPE ev。StartTimer()后,每隔 uMillisecond 毫秒,都會(huì)產(chǎn)生一個(gè) TIMER 事件,可以用WaitForEvent()得到這個(gè)事件,進(jìn)而做相應(yīng)的周期工作。 void StartTimer(unsigned int uMillisecond)。 if (WaitFor(1000) == 0){ //退出程序}//繼續(xù)StartTimer() amp。但當(dāng)用戶關(guān)閉窗口的時(shí)候,它會(huì)立即返回,返回值為 0。調(diào)用此函數(shù)后,你的程序在 uMillisecond 毫秒內(nèi)將什么也不做,靜靜地等待 WaitFor()函數(shù)的返回。 WaitFor()int WaitFor(unsigned int uMillisecond)。 }}定時(shí)器Egg 提供兩種風(fēng)格的定時(shí)器。 EVENT_TYPE ev。調(diào)用 GetMouseX()和 GetMouseY()可以得到鼠標(biāo)指針的坐標(biāo)位置。參考 Egg 交互功能定時(shí)器 鼠標(biāo)移動(dòng)鼠標(biāo)按鍵的動(dòng)作也會(huì)觸發(fā) KEYDOWN 和 KEYUP 事件,對(duì)應(yīng)的虛擬鍵值為VK_LBUTTON、VK_RBUTTON 和 VK_MBUTTON。}StopTimer()。 if (IsKeyDown(VK_UP)) OffsetEgg(0, )。while ((ev = WaitForEvent()) != EXIT) { if (IsKeyDown(VK_LEFT)) OffsetEgg(, 0)。 EVENT_TYPE ev。你可以在任何時(shí)候調(diào)用 IsKeyDown()來判斷某個(gè)按鍵是否正處于按下狀態(tài)。IsKeyDown()應(yīng)運(yùn)而生。鍵盤和鼠標(biāo)上的每個(gè)按鍵都被定義了一個(gè)唯一的虛擬鍵值,詳情請(qǐng)查看 Windows 虛擬鍵值或 MSDN 里的“VirtualKey Codes”。 case VK_LEFT: //按方向鍵左鍵后該做的事 break。 case VK_F1: //按 F1 鍵后該做的事 break。A39。 }每次 WaitForEvent()都要想想 EXIT 該如何處理,這是關(guān)鍵! 按不同鍵做不同事EVENT_TYPE ev。 正確的做法是這樣的: EVENT_TYPE ev。因?yàn)榇藭r(shí)如果用戶關(guān)閉窗口,你的程序并不對(duì)此事件做響應(yīng),但窗口已經(jīng)關(guān)閉,永遠(yuǎn)不會(huì)再產(chǎn)生KEYDOWN 事件,結(jié)果是你的程序死循環(huán),永不退出。 WaitForEvent()初探很多軟件都需要“按任意鍵繼續(xù)...”這樣的功能,下面代碼可以實(shí)現(xiàn): while (WaitForEvent() != KEYDOWN) 。復(fù)雜的按鍵處理很復(fù)雜,比如處理“街霸”、 “侍魂”、“拳皇”那樣的組合鍵??捎肎etStruckKey()得知哪個(gè)鍵被抬起。 KEYUP 抬起按鍵事件。鍵盤或鼠標(biāo)按鍵被按下時(shí)觸發(fā)此事件。鼠標(biāo)在窗口內(nèi)移動(dòng),就會(huì)觸發(fā)這個(gè)事件。 TIMER 定時(shí)周期事件。EVENT_TYPE 是 Egg 自定義的一個(gè)數(shù)據(jù)類型,取值和含義如下表: 值 含義 EXIT 窗口關(guān)閉事件。所有的鼠標(biāo)、鍵盤動(dòng)作,還有周期定時(shí)都被看作是一個(gè)事件,通過函數(shù) WaitForEvent()將最新發(fā)生的事件類型返回給程序,程序根據(jù)事件類型決定下一步的動(dòng)作。 如果不再需要某個(gè) egg,可以使用 EatEgg()將其永久刪除 6. Egg 交互功能Egg 有方便的人機(jī)交互功能,可以自如地響應(yīng)用戶的各種輸入動(dòng)作,包括鍵盤和鼠標(biāo),并有一個(gè)易用的定時(shí)器。 } } return 0。 else { i = 0。 OffsetEgg((NUMBER_OF_EGG i 1) * , 0)。 i = 0。 DrawArc(i+1, 180, 180)。 iNUMBER_OF_EGG。 SetAutoUpdate(0)。 int i。下面代碼利用 Egg 版以后提供的 SetAutoUpdate()和 Update(),使動(dòng)畫看起來更美觀。 } return 0。 if (i NUMBER_OF_EGG 1) i++。 while (WaitFor(100)) { SetActiveEgg(hEggs[i])。 DrawArc(i+1, 180, 180)。 iNUMBER_OF_EGG。 EggStart(10,5)。 include define NUMBER_OF_EGG 5int main(void){ HEGG hEggs[NUMBER_OF_EGG]。也就是說,繪畫時(shí),不需要考慮 egg 在盤子內(nèi)的位置,egg 自己的左下角永遠(yuǎn)是坐標(biāo)原點(diǎn)。這里的(x,y)是 egg 左上角在盤子內(nèi)的坐標(biāo),(dx,dy)是在盤子坐標(biāo)系內(nèi)的位移。 void MoveEgg(double x, double y)。但在下面一節(jié),你將見到 egg 的妙處。 return 0。 DrawArc(i+1, 180, 180)。 iNUMBER_OF_EGG。 EggStart(10,5)。 include define NUMBER_OF_EGG 5int main(void){ HEGG hEggs[NUMBER_OF_EGG]。LayEgg()剛剛下的蛋不需要經(jīng)過SetActiveEgg()的過程,會(huì)自動(dòng)成為活動(dòng)蛋。 void SetActiveEgg(HEGG hEgg)。 每次調(diào)用 LayEgg()都是這樣的效果。 執(zhí)行完 EggStart()后,便已經(jīng)偷偷建立了一個(gè) egg,所有的繪圖操作,都是在這個(gè) egg 上進(jìn)行的。使用 ChangeEggLayer()可以改變egg 的層次,調(diào)整互相之間的覆蓋關(guān)系。 每個(gè)蛋都是相對(duì)獨(dú)立的,可以繪畫、移動(dòng)任何一個(gè)蛋,而不會(huì)影響其它的蛋。egg 的大小與調(diào)用 EggStart()時(shí)指定的大小一致,并且覆蓋整個(gè)盤子(盤子是 Egg 圖形窗口的昵稱),但它初始狀態(tài)是透明的。 HEGG LayEgg(void)。 下蛋有了蛋,才能對(duì)其煎炒烹炸,所以我們先學(xué)學(xué)怎么下蛋。字體此功能未完成,//blush 填充此功能未完成,//blush 5.
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1