原创 Chrome源碼剖析【三】Chrome的進程模型

1. 基本的進程結構 Chrome是一個多進程的架構,不過所有的進程都會由老大,Browser進程來管理,走的是集中化管理的路子。在Browser進程中,有xxxProcessHost,每一個host,都對應着一個Process,比如

原创 Chrome源碼剖析 【五】Chrome的插件模型

1. NPAPI 爲了緊密的與各個開源瀏覽器團結起來,共同抗擊IE的壟斷,Chrome的插件,也遵循了NPAPI(Netscape Plugin Application Programming Interface)標準,支持這個標準的

原创 old DIB in res\*.ico

error RC2176 : old DIB in res\*.ico; pass it through SDKPAINT     這是由於載入的資源文件(****.ico)是真彩色,即3個字節的,而VC6.0只支持256色,因此出現錯

原创 SHGetSpecialFolderPath 和 CSIDLf

Syntax BOOL SHGetSpecialFolderPath(           HWND hwndOwner,     LPTSTR lpszPath,     int nFolder,     BOOL fCreate )

原创 MFC的控件大小如何隨對話框改變

1、在對話框類中加入成員變量CRect m_rect;用於保存對話框大小變化前的大小; 2、在對話框的OnInitDialog()函數中獲取對話框創建時的大小: GetClientRect(&m_rect); 3、在WM_SIZE的響

原创 缺少mfc運行時庫

mfc工程在其他機器上跑不起,拷貝以下目錄的文件到可執行文件目錄下試試: %Visual Studio Install Path%\VC\redist\x86\Microsoft.VC80.CRT %Visual Studio Insta

原创 Chrome源碼剖析 【四】Chrome的UI繪製

1. Chrome的窗口控件 Chrome提供了自己的一個UI控件庫,相關文檔可以參見這裏。用Chrome自己的話來說,我覺得市面上的七葷八素的圖形控件庫都不好用,於是自己倒騰倒騰實現了一套。。。 廣告雖如此說,不過,Chrome的

原创 windows路徑操作API函數

PathRemoveArgs  去除路徑的參數 PathRemoveBackslash  去除路徑最後的反斜槓"\" PathAddBackslash  在路徑最後加上反斜槓"\" PathRemoveBlanks  去除路徑前後

原创 windows api 梳理

PathMatchSpec Function Searches a string using a Microsoft MS-DOS wild card match type. Syntax BOOL PathMatchSpec(  

原创 win32 console 兼容mfc標準stdafx.h文件

// stdafx.h : include file for standard system include files, // or projec

原创 MFC實現打開、保存文件對話框和瀏覽文件夾對話框

一、打開文件夾: 1、CFileDialog實現 CFileDialog hFileDlg(TRUE,NULL,NULL,OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_READONLY,      

原创 COM組件應用(3)——BHO學習

1.什麼叫BHO   Browser Helper Objects,"瀏覽器幫助者對象",以下皆簡稱BHO。 2.支持BHO特性的系統一覽表: Shell版本 操作系統版本 支持BHO  4.00 Windows 95 and Wi

原创 WINDOWS.H already included. MFC apps must not #include

VC的Atl工程爲我們提供了很好的創建COM工程的方法,可是想要在Atl工程裏面使用MFC裏的對象(如CString,CFile)卻並不容易,這對於那些原本熟悉MFC類庫的程序員來說實在是一個很大的麻煩.這裏就介紹一下如何在Atl中使用m

原创 判斷當前焦點在哪個控件上(MFC)

CWnd* pCtrl = CWnd::GetFocus();int iCtrlID = pCtrl->GetDlgCtrlID();if(iCtrlID == IDC_EDIT1){}else if(iCtrlID == IDC_EDI

原创 STL之set使用方法小結

/*set/multiset會根據待定的排序準則,自動將元素排序。兩者不同在於前者不允許元素重複,而後者允許。1) 不能直接改變元素值,因爲那樣會打亂原本正確的順序,要改變元素值必須先刪除舊元素,則插入新元素2) 不提供直接存取元素的任何