原创 OnDraw和OnPaint函數的區別

CWnd::OnPaint() 是CWnd類的成員函數,是WM_PAINT 消息的響應函數.當你調用CWnd::UpdateWindow(), CWnd::RedrawWindow()時, 或者窗口被其他窗口覆蓋,改變大小等事件就會產生

原创 InvalidateRect,ValidateRect,WM_PAINT消息

關於InvalidateRect和ValidateRect函數,一直都不是很清楚。。。 今天寫了幾行代碼,來驗證一下心裏所想的。。。 InvalidateRect函數使&rect標示的矩形區域無效,並且產生一個WM_paint消息,

原创 程序員轉型路上的十條建議

原文地址:http://www.itmian4.com/forum.php?mod=viewthread&tid=4077      [1]好好規劃自己的路,不要跟着感覺走!根據個人的理想決策安排,絕大部分人並不指望成爲什麼院士或教授,而

原创 《C++代碼培訓》筆記

原文地址:http://blog.csdn.net/fengbingchun/article/details/17199369 1.      struct:注意成員排列順序。 2.      #pragma pack(1) :指定按1

原创 C/C++堆、棧及靜態數據區詳解 (轉載)

五大內存分區  在C++中,內存分成5個區,他們分別是堆、棧、自由存儲區、全局/靜態存儲區和常量存儲區。  棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變量的存儲區。裏面的變量通常是局部變量、函數參數等。  堆,就是那些

原创 #pragma once 與 #ifndef 解析

爲了避免同一個文件被include多次,C/C++中有兩種方式,一種是#ifndef方式,一種是#pragma once方式。在能夠支持這兩種方式的編譯器上,二者並沒有太大的區別,但是兩者仍然還是有一些細微的區別。     方式一:  

原创 面向對象與面向過程的區別

面向過程就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。  面向對象是把構成問題事務分解成各個對象,建立對象的目的不是爲了完成一個步驟,而是爲了描敘某個事物在整個解決問題的步驟中的行爲

原创 Vector用法

在c++中,vector是一個十分有用的容器,下面對這個容器做一下總結。 1 基本操作 (1)頭文件#include<vector>. (2)創建vector對象,vector<int> vec; (3)尾部插入數字:vec.p

原创 afxwin.h 與stdafx.h

(1)Standard Application Frame Extend沒有函數庫,只是定義了一些環境參數,使得編譯出來的程序能在32位的操作系統環境下運行。Windows和MFC的include文件都非常大,即使有一個快速的處理程序,

原创 《大話數據結構》簡體中文版勘誤

儘管已經很仔細的檢查和審覈,但錯誤還是沒有能避免。以下的錯誤,有些是作者的筆誤或者表述不清,有些是編輯審稿時不理解造成的錯誤,有些是美編改圖時的錯誤,有些是印刷廠印刷時的錯誤。雖然出錯的原因很多,但總的來說都會給讀者閱讀時造成困擾,所以

原创 vc10安裝文件的生成

項目的第一個版本出來了,要做個安裝包,之前沒有做過,網上看看貼,寫了一個,總結下,根據本項目的需要,沒有寫的太複雜,可能還不是很完善,僅作參考。 首先在打開 VS2010    》   文件 》新建項目 創建一個安裝項目  

原创 C++內聯函數跟普通函數的區別以及實現機制

內聯函數定義: 將函數定義爲內聯函數,一般就是將他在程序中每個調用點上“內聯地”展開。在函數返回類型前加上inline關鍵字。 定義在類聲明之中的成員函數將自動地成爲內聯函數。 內聯函數適用情況: 1.一個函數被重複調用;

原创 調用堆棧

首先介紹一下什麼叫調用堆棧:假設我們有幾個函數,分別是function1,function2,function3,funtion4,且function1調用function2,function2調用function3,function3調

原创 對話框的動畫彈出和動畫消隱

最近看到一篇文章《談對話框的動畫彈出和動畫消隱》,文章提到了利用定時器實現對話框動畫的效果,比葫蘆化瓢,卻發現不但沒有動畫,而且連窗口也沒有了,經過簡單的修改,終於實現了文中的效果,發現是作者少說了幾個地方,在此將完整的實現方法貼出來,也

原创 MFC畫圖(畫線、畫矩形、畫刷畫筆的使用)

繪製任意線條: 1、創建基於單文檔工程:Draw CDrawView類中添加成員變量: CPoint m_ptOrigin; BOOL m_bDraw; 2、CDrawView()中初始化: m_ptOrigin = point; m_b