ⅰ、在視中響應滑鼠輸入與畫圖
1>建立乙個簡單的文件;
2>建立變數
bool m_bmousedown; //記錄滑鼠左鍵按下
hcursor m_hcross; //十字型滑鼠控制代碼
hcursor m_harrow; //標準型滑鼠控制代碼
cpoint m_ptold; //畫線臨時點
cpoint m_ptstart; //畫線起點
3>新增滑鼠動作響應函式
按下ctrl+w,新增wm_lbuttondown(滑鼠左鍵按下訊息處理函式)
void csdiview::onlbuttondown(uint nflags, cpoint point)
說明:按下ctrl+w,新增wm_mousemove(滑鼠移動訊息處理函式)a.當在視察口內按下左鍵時,就會執行此函式,point即為當前滑鼠位置,nflags識別ctrl與shift鍵是否按下;
b.setcapture()把以後的滑鼠輸入訊息送到此視窗中;
c.crect是乙個矩形類。
void csdiview::onmousemove(uint nflags, cpoint point)
cview::onmousemove(nflags, point);
}
說明:按下ctrl+w,新增wm_lbuttonup(滑鼠左鍵放開訊息處理函式)a.當滑鼠在視窗移動時,此函式以一定的時間間隔被呼叫;
b.由於滑鼠的移動,而此函式又在不斷的呼叫,要擦除許多多餘的畫線;
c.moveto()將畫筆移到指定的位置,liveto()從當前位置到指定點畫直線,setrop2()設定繪圖方式,r2_not表示用該位置的相反顏色。
void csdiview::onlbuttonup(uint nflags, cpoint point)
cview::onlbuttonup(nflags, point);
}
ⅱ、在視中響應鍵盤輸入與顯示字元
1>建立乙個簡單的文件;
2>建立變數
int m_nline;//記錄已經輸入字元的行數
cstring m_strdisplay;//字串
3>新增鍵盤訊息響應函式
按下ctrl+w,新增wm_char(鍵盤訊息處理函式)
void csdiview::onchar(uint nchar, uint nrepcnt, uint nflags)
else if(m_strdisplay.getlength()<64)m_strdisplay+=nchar;//限定一行只顯示64個字元,將按下的字元的acsii碼值加在後面
cclientdc dc(this);
textmetric tm; //包含顯示字元的尺寸資訊的結構體
dc.gettextmetrics(&tm);//獲得字元尺寸的具體數值
int nlineheight=tm.tmheight+tm.tmexternalleading;//tmheight為字元高度,tmexternalleading為行間距
dc.textout(0,m_nline*nlineheight,m_strdisplay); //起始點x座標,終點y座標,字串
cview::onchar(nchar, nrepcnt, nflags);
}
說明:a.當按下某鍵時,onchar()就被呼叫,引數nchar為按下鍵的ascii碼值,nrepcnt是重複次數,nflags為一些標誌
b.textout()用於輸出字串。
Flex Modules通訊 1 通過介面
flex modules通訊方式有很多種 通過繼續介面 引數傳遞 定義事件通訊。這裡討論通過繼續介面通訊。模組是獨立,通過繼承介面,允許外部應用程式與他們通訊。首先,定義介面icommunicaton.as 1 package 2 9 建立module繼承icommunicaton介面 1 2 xm...
練習題1 通過函式生成52張撲克牌
練習題要求 1.寫函式,返回乙個撲克牌列表,裡面有52項,每一項是乙個元組.例如 紅心 2 草花 2 黑桃a 分析步驟 1.52張牌不包括大小王.我們可以先定義乙個臨時空列表,然後把2 10的數字新增進去,再用列表的extend 方法把jqka也新增到臨時列表中 2.迴圈獲取撲克牌型別 黑桃 紅桃 ...
服務架構調整1 通過nginx灰度發布應用
隨著公司業務規模擴大,傳統的架構已無法支撐業務量階梯式的增長,應用發布也必須迎來調整。之前的發布方式,需要通過指令碼切換nginx,然後通過ansible進行批量發布 由於業務的特殊性質,原有方案一旦上線 出現bug或者人為出現操作失誤,將導致大面積應用無法提供服務,為了避免故障發生造成毀滅性的後果...