原创 填充算法(二)優化遞歸填充算法

1、在《填充算法(一)》中中提到的都是最基本的遞歸填充算法,即由一個起始的填充點開始,向周圍各個方向的點遞歸,根據遞歸條件,進而達到填充某個顏色塊(注入填充) 或是 任意區域(邊緣填充)的效果。但是,遞歸填充算法佔用的棧空間太大,而且遞歸

原创 MFC TreeControl爲複選框添加響應函數

1、使用Tree控件時,採用了CheckBox風格,但是如何響應複選框的點擊操作呢?具體實現如下: (1)可以通過響應NM_CLICK消息來達到上述效果,並在其響應函數中做點擊測試,以確定點擊的複選框; (2)首先添加該消息的響應函數,並

原创 CPen繪製線條寬度大於1 的虛線

1、示例環境:VS2010,MFC對話框工程,主要是對話框的OnPaint函數中 2、首先,一般大多數人比較熟悉的CPen的用法如下: CPaintDC dc(this); CPen pen1(PS_SOLID, 1, RGB(

原创 排序算法(一)冒泡排序算法1

1、冒泡排序的概念網上一大堆,這裏也就不復制了。下面主要是我的一些理解,算是在此做個筆記吧! 注:排序算法系列文章,採用VS2010編寫示例代碼 2、“冒泡”是一個很形象的比喻,下面先看一段簡單的代碼:     int 

原创 VS:String too long or IO Error

1、問題描述:TRACE主要用來了解代碼執行到了哪裏.在 Unicode下會出現String too long or IO Error打印不出字符串. 2、解決方法1:將工程的字符集設置爲使用多字節字符集; 3、解決方法2:將區域設置

原创 本人博客已轉移至blog.kaven.xyz

本人博客已轉移至https://blog.kaven.xyz CSDN不再更新

原创 關於Win8引導菜單風格切換

在Win8中安裝Vista或WIn7後,會導致啓動菜單變回傳統的黑底白字引導菜單。這是因爲Windows8的啓動管理器本身是支持兩種風格啓動菜單,而低版本操作系統並不支持Metro風格菜單。我們可以在Win8中自由切換兩種顯示風格。切換

原创 CFileDialog文件打開(保存)對話框

1、首先,截取一段MSDN上的內容: Call this function to construct a standard Windows file dialog box. explicit CFileDialo

原创 填充算法(一)遞歸填充算法

1、首先介紹兩個概念,就是“4-聯通算法”和“8-聯通算法”。既然是搜索就涉及到搜索的方向問題,從區域內任意一點出發,如果只是通過上、下、左、右四個方向搜索到達區域內的任意像素,則用這種方法填充的區域就稱爲四連通域,這種填充方法就稱爲“4

原创 文件打開(保存)對話框:GetOpenFileName和 GetSaveFileName

void Test() { TCHAR strFilter[] = _T("Bitmap Files(*.bmp)\0*.bmp\0") _T("JPEG Files(*.jpeg;*jpg)\0*.jpeg;*.jpg

原创 CBitmapButton類使用注意事項(主要是AutoLoad)

1、MFC有一個位圖按鈕類,即爲CBitmapButton,能夠實現簡單的按鈕貼圖美化;但是長久沒有使用,今天就遇到一些問題:主要就是CBitmapButton::AutoLoad這個函數的使用,總是出錯,無法正確的加載圖片;現在將需要注

原创 CBitmap拷貝函數(根據一個CBitmap對象創建另一個相同的CBitmap對象)

1、有時需要使用一個與源CBitmap相同的CBitmap對象而不是一個源CBitmap對象的指針,例如不希望更改源CBitmap對象的情況下,就需要構造一個與源對象相同,但是與源對象無關的對象;通常情況下,會想到拷貝構造函數,但是CBi

原创 MFC繪圖板(三)

1、接前文《MFC繪圖板(二)》 2、本以爲用MFC實現一個繪圖程序很簡單,但是實際做起來卻遇到了許多問題,下面對開發過程中的一些問題記錄如下: 3、首先,介紹以下MFC繪圖板實現的功能: (1)MFC繪圖板以Win7自帶的畫圖程序爲

原创 VS2010修改工程棧大小

1、使用遞歸算法時,產生了棧溢出(Stack OverFlow),最簡單的解決方法就是更改默認的棧大小,具體操作如下: (1)右鍵解決方案 -> 屬性(或則點擊“工程”菜單,選擇屬性)-> 彈出如下屬性配置頁: (2)選擇 鏈接器 -

原创 MFC繪製不規則線條

1、要繪製一條直線很簡單,只需知道直線的起點和終點,就可以繪製出一條直線了。但是,如果想要繪製不規則的線條,譬如利用鼠標寫一個漢字等等該如何實現呢? 2、一種實現的思路是,依舊調用繪製直線的函數,繪製很多條長度很短並且順序相連的直線,這