原创 靜態庫中應慎用靜態類成員

有各種各樣的原因會用到類靜態成員,一般是共享數據,但編寫靜態庫的時候應慎重考慮,因爲用在應用程序中沒什麼問題,但用在DLL中,可能災難就開始了,看以下一個例子:靜態庫中有一個名爲TestSQL的數據庫操作類,有一個靜態成員m_count記

原创 關於WM_NOTIFY消息接收窗口的問題

WM_NOTIFY是控件發送給其父窗口的通知消息,一直沒想過控件的父窗口變動的問題,直到想自己實現類似VC的停靠工具欄時才碰到這個問題。工具欄停靠時其

原创 打造自己的MFC:thunk技術實現窗口類的封裝

MFC功能已經非常強大,自己做界面庫也許沒什麼意思,但是這個過程中卻能學到很多東西。比如說: 窗口類的封裝,從全局窗口消息處理到窗口對象消息處理的映射方法:     對界面進行封裝,一般都是一個窗口一個類,比如實現一個最基本的窗口類CMy

原创 我的電影收藏曆程

喜歡看碟,當初網絡還不發達的時候,沒條件上網DOWN片子看,那時可能也沒有,只有買VCD回家看。從來不去租,因爲租來的碟子上面都是劃痕,心疼光驅。不知不覺,VCD已放滿了幾抽屜,一開始買的片子還有不少是槍版,後來跟老闆關係好了,老闆都會實

原创 線程的封裝技巧:把任意類的成員函數指針作爲參數

線程的封裝很簡單,並沒有多少東西,但是如果我告訴你,我封裝的這個線程類裏有個成員函數Start,作用是開啓線程運行,可以這樣調用: class a{public: DWORD ThreadFunca(LONG lParam); void

原创 DVD點滴:D5和D9

程序員可能沒多少時間看碟,不過喜歡看是肯定的,周圍的同事朋友很多都是從網上DOWN,不管槍版及畫面質量,看的都很帶勁。也有自己買碟看的,不過跟他們談起版本,還真很少有知道D5和D9的,很多都是問一句:D9是什麼東西?因此這裏胡亂侃一下,只

原创 徹底瞭解DVD:從入門到精通

徹底瞭解DVD:從入門到精通-轉自山楂樹論壇白衣原創第一章 緣起    那片直徑120mm的小小的塑料片,閃耀着一種迷幻般的光澤。一束絢麗的激光照射在這小小的塑料圓片上,成千上萬比特的數據流沿着一根細細的光纖從DVD影機輸送到AV功率放大

原创 循序漸進實現仿QQ界面(四):圓形按鈕與工具欄自繪

這一篇本來應該演示如何實現仿QQ界面的中間客戶區與底部工具欄,不過在實現底部工具欄的時候發現圓形按鈕與工具欄自繪有不少取巧的方法,因此加插這麼一篇,講解一下如何實現圓形按鈕和工具欄自繪。   前面幾篇都是在講解如何實現QQ頂部的標題欄,是

原创 解決Windows 程序界面閃爍問題的一些經驗

原帖地址:http://blog.joycode.com/yaodong/archive/2004/11/26/39764.aspx 一般的windows 複雜的界面需要使用多層窗口而且要用貼圖來美化,所以不可避免在窗口移動或者改變大小的

原创 循序漸進實現仿QQ界面(六):異型菜單與內建滾動條自繪

本篇演示實現仿QQ界面的異型菜單與滾動條自繪。   先講解一下如何實現QQ的圓角菜單,這個要用到HOOK了,因爲菜單是一種特殊的窗口,無法用FindWindow或通過HMENU來獲取到窗口句柄,也就無法子類化。必須下鉤子,這裏下的是WH_

原创 循序漸進實現仿QQ界面演示程序編譯問題及MFC調用RingSDK圖象庫示例

有不少朋友反映《循序漸進實現仿QQ界面》裏面的示例程序無法編譯或編譯有問題,以及希望能有MFC的工程,在此集中解答一下。   演示程序編譯問題:   1、演示程序需要最新版本的RingSDK,請先用SVN到svn://svnhost.cn

原创 奇怪的問題,InvalidateRect最後一個參數在XP下無效

一直用的WIN2K系統,寫的一個程序在本機正常,到XP系統的機器運行發現調整窗口大小時界面閃得厲害,程序比較大,而且這種閃爍還不好調試,因爲單步調試沒有閃爍效果,只能排除法找原因,最後以爲找到原因了,就寫了一個測試程序,就是用VC6嚮導自

原创 循序漸進實現仿QQ界面(三):界面調色與控件自繪

本篇講述如何進行界面調色。界面調色一般有兩種方法,調色板和HSL色彩變換。調色板侷限於256色,這裏不採用,因此用HSL色彩變換實現。首先要了解一下什麼是HSL色彩空間,完整且詳盡的知識請到維基百科去看,鏈接地址:http://zh.wi

原创 不用雙緩衝實現無閃爍圖象

首先說一下產生閃爍的原因,當窗口由於任何原因需要重繪時,總是先用背景色或背景圖象將顯示區清除,然後才顯示圖象,這樣在短時間內背景色與顯示圖形交替出現,使得顯示窗口看起來在閃。如果將背景刷設置成NULL,這樣無論怎樣重繪圖形都不會閃了,但是

原创 循序漸進實現仿QQ界面(五):半透明窗體與不透明控件

本篇演示實現仿QQ界面的中間客戶區。QQ是可以調整界面透明度的,但是調整了透明度卻連中間客戶區也變得半透明瞭。客戶區畢竟是軟件最重要的部分,是要與用戶交互的,透明瞭就影響操作了,因此這裏的客戶區不學QQ,始終不透明。要實現不透明控件,只能