原创 如何重載最小化、最大化窗口消息響應

最小化、最大化窗口消息響應放在CWnd::OnSysCommand函數中,以下舉一例,該例重載了窗口的最小化和最大化操作爲隱藏和顯示窗口,當然,此例功能實現是在程序有托盤圖標的情況下實現的,要不然這樣的功能會讓用戶覺得很不方便。關於托盤圖

原创 MFC實現的 picture control 類,對話框上顯示圖片

Download control source - 2.61 KBDownload demo - 2.19 MB 以上是源碼及演示程序下載地址 (文章原地址 http://www.codeproject.com/Articles/2

原创 大端(Big Endian)、小端(Little Endian)存儲模式名字的來歷

這篇文章不是用來告訴你怎麼判斷計算機是大端模式還是小端模式的,這樣的文章有一大把,若只想知道這個,請直接繞道。--->http://baike.baidu.com/view/1922338.htm 其實知道大端小端的概念挺久了,只是我一直

原创 將桌面顯示獲取並保存到bmp中

代碼來自網絡,在此分享: //GrabScreenToBitmap.h #ifndef GRABSCREENTOBITMAP_H #define GRABSCREENTOBITMAP_H HBITMAP GrabScrToBmp(LP

原创 如何讓窗口重畫——Invalidate()、SendMessage(WM_PAINT)和UpdateWindow()

昨天晚上討論的問題,還有另外一個很重要的部分——如何讓窗口重畫。 這裏注意這樣幾點(這裏討論的函數都是CWnd對象的成員函數): @1.Invali

原创 如何給對話框添加“加速鍵”響應

MFC的對話框(不是從CFrameWnd類繼承下來的),不會自動響應加速鍵,這需要自己添加代碼去實現這個功能 @1.對話框中添加成員變量: HACCEL m_hAccel;@2.在OnInitDialog()函數中添加代碼: // 裝載加

原创 托盤圖標的添加和消息響應

1.如何添加一個托盤圖標 #define WM_ICON_NOTIFY WM_USER + 2 ... BOOL CMyDlg::OnInitDialog() { ... NOTIFYICONDATA nid; n

原创 getopt和getopt_long函數

平時在寫程序時常常需要對命令行參數進行處理,當命令行參數個數較多時,如果按照順序一個一個定義參數含義很容易造成混亂,而且如果程序只按順序處理參數的話

原创 GDI入門實例(在VC++6.0中將JPG格式圖片轉換成BMP格式)

在 VC++6.0 中將 JPG 格式圖片轉換成 BMP 格式 思路:利用 GDI+來完成 難點: (1)配置 GDI 開發環境,添加配置代碼 (2)在當文檔程序中添加轉換代碼 注意:本文檔由 ybdesire 參考網上資料撰寫完成,代碼

原创 rand、srand的實現機制

rand和srand是用於產生僞隨機數的兩個函數,根據參考手冊rand的返回值是在[0, RAND_MAX]之間的數據,RAND_MAX在不同的系統中數值有所不同。 以下是rand和srand實現方式的一個示例(假定RAND_MAX爲32

原创 使用CreateProcess運行程序 + 使用命令行對html文件進行打印

平時寫程序時經常會遇到要執行一個外部程序實例或者某個命令行的情況,這可以使用CreateProcess來實現。 由於我們程序中通常只是將外部程序或者一個命令行運行起來,並不需要進行後續的控制,於是我將這個操作封裝成了一個方便快速操作的函

原创 Windows API 更改註冊表鍵值 + 修改註冊表去除IE打印頁面的頁眉頁腳

@1. IE打印出來的頁面經常是含有頁眉頁腳的,比如在頁面左下方出現文件名,右上方出現頁碼等,這些經常是我們不想要的內容。 如果手動設置的話,這個設置項在IE的菜單中:工具->頁面設置,我們可以通過將頁眉頁腳全部設置爲無,就可以清除掉。

原创 讀取ANSI文件存入UNICODE編碼的CString——“Ansi轉UNICODE”及“UNICODE轉Ansi”

最近在用MFC寫一個小的工具,從一個讀取一個帶特殊標籤的文件並將裏面的標籤替換成對應的數據,然後寫入另一個生成文件裏。由於輸入輸出文件是Ansi編碼的,程序當中CString類存儲格式卻是UNICODE編碼的,所以不得不解決編碼轉換的問題

原创 托盤圖標的刪除和托盤程序的優化

上一篇討論了托盤圖標的添加,程序退出後雖然系統會自動刪除托盤圖標,但這種工作最好在程序中完成,以保證程序所有的動作都在我們的代碼控制之內 3.刪除托盤圖標 NOTIFYICONDATA nid; nid.cbS

原创 如何將一個位圖拷貝到另一個位圖中

在程序裏,有的時候需要對某個位圖對象進行備份,即複製一個位圖的多份數據,這樣就算前面的位圖被銷燬我們也還能保留到複本,這裏提供一種複製方法: // 將一個位圖拷貝到另一個位圖中,目標位圖會被自動創建 inline void CopyBi