計算機程序員實習日記范文
05-14 星期一
ListCtrl中LVITEM lpara有很廣泛的用處,我們可以通過這個參數實現list控件的排序功能,這里需要注意的是使用LVITEM中的LPARAM,但是SetItemData 函數似乎又是對LVITEM 的lPara進行設置的,這里的關系似乎很微妙,但是我們一定要注意 不能混淆。類中的成員函數可以單獨的聲明為模板函數,但是模板函數的實現要放在頭文件中。GDI+中沒有提供繪制圓角方的函數,我們需要通過GraphicPath類進行模擬來實現。
鼠標跟蹤消息的要點:響應消息WM_MOUSEMOVE WM_MOUSELEAVE WM_MOUSEHOVER 在WM_MOUSEMOVE消息中處理__TrackMouseEvent()函數。
05-15 星期二
我們在使用tooltip的時候,有以下幾個關鍵點:
1,創建CToolTipCtrl對象,Create()函數實現。
2,使用AddTool()函數向這個tooltip中加入tools,這也是綁定tool到某個控件的過程,從中我們可以知道在這個CToolTipCtrl對象中應該存在著不止一個tool,而是一系列的tool,通過函數DelTool實現刪除,AddTool實現添加,UpdateTipText實現更新tool的文本。
3,最關鍵的是我們需要一個觸發tooltip的關鍵點,這個關鍵點控制著何時顯示這個tooltip,一般情況下我們在PreTranslateMessage()函數中進行處理,這也是我們攔截WM_MOUSEMOVE的地方,攔截之后,我們調用tooltip的RelayEvent向toolTip對象傳遞這個消息用以表示tooltip可以被顯示或者更新。
靜態鏈接MFC DLL模塊的時候,由于MFC總是使用它所練級額的DLL模塊狀態,所以不存在模塊管理的'問題。
調試DLL的時候,我們需要exe文件的配合,所以先要生成exe測試文件,然后將DLL工程設置成active ,這時候會出現exe路徑提示對話框,我們將測試用的exe路徑填入就可以了。
05-16 星期三
CToolTipCtrl 函類中的RelayEvent()函數的存在理由,試想當我們的鼠標在一個窗體上滑動的時候,會發生什么情況,如果鼠標下方的窗體是一個子窗體,那么這個子窗體將會收到鼠標的消息,而主窗體的鼠標消息因此被屏蔽,windows是通過這種方式來處理消息的,這里CToolTipCtrl對象也需要受到消息來進行處理,但是這些鼠標消息卻不能流向CToolTipCtr對象,這就是問題的關鍵之所在,如何將消息導向CtoolTipCtrl就成了關鍵,一般我們會在PretranslateMessage()函數中攔截消息之后使之導向CTOOLTipCtrl,這個導向所用的函數就是RelayEvent函數。
You can have messages relayed automatically if:
The tool is a control or is defined as a rectangle in the tool's TOOLINFO structure.
The window associated with the tool is in the same thread as the tooltip control.
If these two conditions are met, set the TTF_SUBCLASS flag in the uFlags member of the tool's TOOLINFO structure when you add the tool to the tooltip control with TTM_ADDTOOL. The necessary mouse messages then will be relayed automatically to the tooltip control.
有關ToolTip控件的討論目前還存在疑惑,1當我們使用LPSTR_TEXTCALLBACK的時候,為什么ON_NOTIFY()可以得倒響應消息,卻會在某個時間點出現Stack run over的錯誤。
【計算機程序員實習日記范文】相關文章:
實習程序員簡歷范文08-23
計算機程序員英文簡歷11-27
關于計算機程序員的個人簡歷范文模板09-25
計算機實習證明范文08-12
計算機程序員英文簡歷模板06-22
計算機實習心得范文(計算機實習心得體會)12-20
程序員實習目的三篇11-13
計算機實習總結優秀范文09-07
計算機專業實習證明范文08-11
計算機專業實習簡歷范文11-03