private繪畫元素 那麼,讓我們分解一下commandlink的可視元素。只有兩種複雜的狀態是懸停狀態和向下狀態。 徘徊 使按鈕彈出的部分是乙個簡單的白色漸變,它是按鈕高度的四分之三。由於lineargradientbrush的工作方式,有時如果梯度繪製區域太高1畫素,梯度將重新開始,使一條難看的白線出現在控制項中間。為了解決這個問題,我們在宣告lineargradientbrush之後新增以下**: 隱藏,複製codestatic graphicspath roundedrect(int width, int height, int radius)
wrapmode.tileflipx
sizef headerlayout = g.measurestring(headertext, this.font);此外,如果禁用控制項,這部分控制項將會更改。文字只需要改變顏色。但是,如果還沒有完成,就需要將影象轉換為灰度。 活動覆蓋 有幾個事件,需要被覆蓋,以獲得命令鏈結行為像我們想要: onpaint -處理所有繪圖方法;根據commandlink的狀態,它執行適當的繪圖例程。由於使用者控制項沒有繼承button類,如果我們想要能夠指定乙個對話方塊,行為需要在這裡手動處理。如果commandlink被選項卡選中,使用者點選enter,然後執行performclick。ongotfocus/onlostfocus -重新整理控制項以繪製/刪除淡藍色高亮部分。所有的onmouse事件只是改變乙個變數來反映commandlink的當前狀態,並使控制項重新繪製自己。onenabledchanged——設定正確的狀態並重新繪製commandlink。(注意,不幸的是,此事件在設計時沒有呼叫,但在執行時可以正常工作。) 結論和改進 最後,我們得到了乙個控制項,它具有按鈕的基本功能,但外觀是乙個vista風格的commandlink。該實現是為了相容舊版本的windows,所以可以做一些可選的改進。例如,它不支援像vista控制項那樣的漸變,而且目前,影象必須在左側。 本文**於:sizef descriptlayout = g.measurestring(descriptiontext, descriptfont);
//merge the two sizes into one big rectangle
rectangle totalrect = new rectangle(0, 0,
(int)math.max(headerlayout.width,
descriptlayout.width),
(int)(headerlayout.height +
descriptlayout.height) - 4);
又是乙個鏈結庫的問題
今天又碰到乙個鏈結庫的問題。導致libcmtd.lib 和 msvcrd.lib造成衝突 乙個debug版的dll鏈結時,vs會首先鏈結qt的debug庫,比如qtcored.dll,而qtcored.dll內部又一定鏈結了vc的debug庫,比如msvcrd.dll,自己寫的dll也會鏈結vc的d...
又是乙個APIHOOK
又是乙個apihook 借用了海風月影的hookapi 0.5的一些思路 hookproc的函式型別和原來的api一樣,只是引數比原api多2個 dword winapi hookproc dword retaddr pfn x pfn x,引數比原始的api多2個引數 retaddr 呼叫api的...
又是乙個51
記得去年的這個時候還和小崔,小魏他們在漓江邊燒烤呢,呵呵,晚上漓江邊真的很不錯,靜靜的,大家坐在一起聊天,說說未來的打算,談談自己的感受,回憶一下在學校裡的美好時光,桂林的夜景很漂亮,去留不住我的心。51的時候大夥合計著去了躺八角寨,時間真的過得很快,轉眼間感覺大學四年真的很快,而我感覺這一年過得更...