Time of Update: 2018-12-03
/////////////////////////////////////////////////////////////////////////////// CFrameWnd command/message routingBOOL CFrameWnd::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo){ CPushRoutingFrame push(this); // pump
Time of Update: 2018-12-03
Hi!I try to put a HTREEITEM in the clipborad and read from clipboard with drag and drop and i don't quite understand the techniqe. Is there anyone who could help me out of this problem, please?Here is my code:void CTree::OnBegindrag(NMHDR* pNMHDR,
Time of Update: 2018-12-03
所有windows應用程式都是訊息驅動的,訊息處理是所有windows應用程式的核心部分。當使用者單擊滑鼠或改變視窗大小時,都將給適當的視窗發送訊息。每個訊息都對應於某個特定的事件。步驟/方法訊息處理和訊息映射的概念 訊息 訊息主要指由使用者操作而嚮應用程式發出的資訊,也包括作業系統內部產生的訊息。例如,單擊滑鼠左按鈕,windows將產WM_LBUTTONDOWN訊息,而釋放滑鼠左按鈕將產生WM_LBUTTONUP訊息,按下鍵盤上的字母鍵,將產生WM_CHAR訊息。 windows訊息組成結
Time of Update: 2018-12-03
MFC對OLE剪貼簿的支援主要集中在兩個類上,分別是COleDataSource,COleDataObject。其中,COleDataSource作為操作者,而COleDataObject作為消費者,換句話說,使用者需要使用COleDataSource把資料放到OLE剪貼簿上,而使用COleDataObject把它取回。將儲存在全域記憶體中的項目放置在OLE剪貼簿上,需要進行如下步驟:1.在堆上(而不是在堆棧上)建立COleDataSource對象。2.調用COleDataSource::Ca
Time of Update: 2018-12-03
第一種--使用mfc.bsc源瀏覽器檔案 mfc.bsc是可以查看MFC原始碼的檔案,其位置在MFC原始碼檔案夾下,Visual Studio版本不一樣的話,位置也不一樣。vc6.0位置:C:/Program Files/Microsoft Visual Studio/VC98/MFC/SRC/vc2008sp1位置:D:/Program Files/Microsoft Visual Studio
Time of Update: 2018-12-03
這些類只要DECLARE_DYNAMIC:CObjectCCmdTargetCWinThreadCWinAppCMyWinAppCViewCDocument而這些類則要DECLARE_DYNCREATE:CWndCFrameWndCMyFrameWndCMyViewCMyDoc 什麼宏都沒有 不支援運行時類資訊或序列化,但包含診斷記憶體管理。 DECLARE_DYNAMIC 準系統加上運行時類資訊支援。 DECLARE_DYNCREATE
Time of Update: 2018-12-03
如何將MFC程式改為UNICODE類型1. 在Project->C/C++->Preprocessor definitions 中去除_MBCS, 增加_UNICODE2. 在Project->Link->Category->Output->Entry-point symbol處增加wWinMainCRTStartup3. 拷貝3個{function
Time of Update: 2018-12-03
CObject和CRuntimeClass是MFC中兩個非常重要的類/結構,絕大部分MFC類都是以CObject做為基類, CRuntimeClass結構同CObject密不可分,瞭解它們對於深入理解MFC具有重要意義。一、CRuntimeClass結構要理解CObject,我們先來看一下CRuntimeClass這個在MFC中至關重要的一個結構。每個從CObject中派生的類都有有一個CRuntimeClass對象同它關聯以完成在運行時得到類執行個體的資訊或者是它的基類。
Time of Update: 2018-12-03
VC中的Unicode編程 在windows下編程還是支援unicode吧,大勢所趨啊,window
Time of Update: 2018-12-03
我在CSDN的第一篇Blog是關於XML,介紹使用MSXML的DOM API來處理XML。當時曾經說後續介紹另一種處理模式SAX,結果一晃過了很多年也沒有寫。實在是因為SAX模型太過麻煩,也沒實際用過。SAX是夠麻煩的,連.NET Framework都沒有提供類似的API,而改為提供XmlReader/Writer。在非託管環境下,XmlLite提供了類似的XmlReader/Writer介面。 SAX和XmlReader一樣,都是關於串流XML的。因為使用DOM
Time of Update: 2018-12-03
訊息系統是MFC的重要組成部分。MFC的訊息響應機制並不複雜,而且MFC的開發環境 Visual
Time of Update: 2018-12-03
測試平台Windows XP + VS.net beta 2,假設我的應用程式名是abc.exe。 ①:複製一個[應用程式名稱].manifest(用VC7產生的)到res目錄 ②:把[應用程式名稱].manifest改成abc.manifest檔案名稱, 再把檔案裡的內容name="Microsoft.Windows.[應用程式名稱]"改成name="Microsoft.Windows.abc" ③:把abc.manifest添加到方案總管->Resource
Time of Update: 2018-12-03
雖然一直用C/C++,但很少涉及到Bit序列的問題。比如,-1的二進位表示到底是怎樣的?從沒有深究過,一直都是模稜兩可的,說出來實在讓人笑話。對於有符號整型數的簡單認識就是,最高位為符號位,0為正,1為負,那麼剩下幾位應該如何表示呢?理所當然的認為,既然是1表示為0000 0001(假設為8位整型數,下同),那麼-1就應該表示為1000 0001了。但是,在C語言裡,-1的正確表示應該是1111 1111,即0xFF。因為C語言裡,對整型數是採用Two’s
Time of Update: 2018-12-03
ON_NOTIFY和ON_NOTIFY_EX用來處理控制項通知訊息WM_NOTIFY 的宏。 兩者的形式是:ON_NOTIFY_EX(nCode,id,memberFxn) 其中 nCode可以表示一個待處理的訊息 id表示發送訊息的視窗 memberFxn表示訊息處理函數 ;兩者的形式不一樣:ON_NOTIFY的是: afx_msg void memberFxn(NMHDR*pNotifyStruct,LRESULT*
Time of Update: 2018-12-03
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)//{{AFX_MSG_MAP(CTestDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()//}}AFX_MSG_MAPON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTip)END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////
Time of Update: 2018-12-03
http://blog.csdn.net/glldc/article/details/2667451 1. 建立一個MFC工程, 取名MyTab, 選擇Dialog based, 然後Finish.2. 刪除對話方塊上預設添加的三個控制項. 添加Tab Control控制項並在Property屬性中設定ID為IDC_TABTEST 在More Styles裡勾上Bottom. 調速尺寸使其布滿整個對話方塊, 我這邊Tab
Time of Update: 2018-12-03
Silverlight與Flash的最大不同之一就是,Flash天生就是流媒體,Silverlight則是後天補充支援的。因為,Silverlight必須是整個xap應用程式套件下載完成後才能顯示(運行),而Flash是第一幀下載後就可以顯示的。雖然Silverlight
Time of Update: 2018-12-03
很多年前就開始用MFC了,但一直沒研究過內部的原理,僅僅是能熟練使用VC++/AppWizard寫軟體而已。 作為一個遊戲程式員,Win32的技術還是要做基本功的,於是閱讀了一些MFC的原始碼,搞清楚了MFC訊息路由/映射機制。步驟/方法 以下分三個步驟就可以描述清楚: 1. MFC中的每個視窗都對應一個C++類 Windows中的視窗用HWND來標示,C++類是指CWnd或其衍生類別。兩者之間可以互相轉換,方法如下: CWnd* wnd =
Time of Update: 2018-12-03
前些日子隨手寫的《Silverlight與Flash的一點不同》一文,有讀者提出了贊同和反對意見,意料之中的事情,呵呵,繼續討論如下。WPF是以XAML為基礎的,而XAML並不是為Streaming而設計的,至少我沒有看到對此的說明。理論上,XAML也是可以像XML Stream的方式來處理,但是Code
Time of Update: 2018-12-03
一開始我也被這幾個概念給搞糊塗了,特別是在前面寫了兩篇文章《Silverlight與Flash的一點不同》之後,收到了一些人的疑問。其中就有一條,Silverlight應該跟Flex比較,而不是Flash。直到我看了Adobe的官方介紹之後,這才明白過來。 原來Flex只是一個開源的類庫,簡單的可以認為是萬用群組件庫。Flex編譯出來的結果即SWF檔案(類似二進位可執行檔),可以運行在Flash Player或者AIR運行環境裡(類似OS)。再進一步,Flash