- 相關(guān)推薦
計(jì)算機(jī)專(zhuān)業(yè)程序員實(shí)習(xí)日記范文
星期一
CToolTipCtrl 函類(lèi)中的RelayEvent()函數(shù)的存在理由,試想當(dāng)我們的鼠標(biāo)在一個(gè)窗體上滑動(dòng)的時(shí)候,會(huì)發(fā)生什么情況,如果鼠標(biāo)下方的窗體是一個(gè)子窗體,那么這個(gè)子窗體將會(huì)收到鼠標(biāo)的消息,而主窗體的鼠標(biāo)消息因此被屏蔽,windows是通過(guò)這種方式來(lái)處理消息的,這里CToolTipCtrl對(duì)象也需要受到消息來(lái)進(jìn)行處理,但是這些鼠標(biāo)消息卻不能流向CToolTipCtr對(duì)象,這就是問(wèn)題的關(guān)鍵之所在,如何將消息導(dǎo)向CtoolTipCtrl就成了關(guān)鍵,一般我們會(huì)在PretranslateMessage()函數(shù)中攔截消息之后使之導(dǎo)向CTOOLTipCtrl,這個(gè)導(dǎo)向所用的函數(shù)就是RelayEvent函數(shù)。
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.
有關(guān)ToolTip控件的討論目前還存在疑惑,1當(dāng)我們使用LPSTR_TEXTCALLBACK的時(shí)候,為什么ON_NOTIFY()可以得倒響應(yīng)消息,卻會(huì)在某個(gè)時(shí)間點(diǎn)出現(xiàn)Stack run over的錯(cuò)誤。
星期二
ListCtrl中LVITEM lpara有很廣泛的用處,我們可以通過(guò)這個(gè)參數(shù)實(shí)現(xiàn)list控件的排序功能,這里需要注意的是使用LVITEM中的LPARAM,但是SetItemData 函數(shù)似乎又是對(duì)LVITEM 的lPara進(jìn)行設(shè)置的,這里的關(guān)系似乎很微妙,但是我們一定要注意 不能混淆。類(lèi)中的成員函數(shù)可以單獨(dú)的聲明為模板函數(shù),但是模板函數(shù)的實(shí)現(xiàn)要放在頭文件中。GDI+中沒(méi)有提供繪制圓角方的函數(shù),我們需要通過(guò)GraphicPath類(lèi)進(jìn)行模擬來(lái)實(shí)現(xiàn)。
鼠標(biāo)跟蹤消息的要點(diǎn):響應(yīng)消息WM_MOUSEMOVE WM_MOUSELEAVE WM_MOUSEHOVER 在WM_MOUSEMOVE消息中處理__TrackMouseEvent()函數(shù)。
星期三
我們?cè)谑褂胻ooltip的時(shí)候,有以下幾個(gè)關(guān)鍵點(diǎn):
1,創(chuàng)建CToolTipCtrl對(duì)象,Create()函數(shù)實(shí)現(xiàn)。
2,使用AddTool()函數(shù)向這個(gè)tooltip中加入tools,這也是綁定tool到某個(gè)控件的過(guò)程,從中我們可以知道在這個(gè)CToolTipCtrl對(duì)象中應(yīng)該存在著不止一個(gè)tool,而是一系列的tool,通過(guò)函數(shù)DelTool實(shí)現(xiàn)刪除,AddTool實(shí)現(xiàn)添加,UpdateTipText實(shí)現(xiàn)更新tool的文本。
3,最關(guān)鍵的是我們需要一個(gè)觸發(fā)tooltip的關(guān)鍵點(diǎn),這個(gè)關(guān)鍵點(diǎn)控制著何時(shí)顯示這個(gè)tooltip,一般情況下我們?cè)赑reTranslateMessage()函數(shù)中進(jìn)行處理,這也是我們攔截WM_MOUSEMOVE的地方,攔截之后,我們調(diào)用tooltip的RelayEvent向toolTip對(duì)象傳遞這個(gè)消息用以表示tooltip可以被顯示或者更新。
靜態(tài)鏈接MFC DLL模塊的時(shí)候,由于MFC總是使用它所練級(jí)額的DLL模塊狀態(tài),所以不存在模塊管理的問(wèn)題。
調(diào)試DLL的時(shí)候,我們需要exe文件的配合,所以先要生成exe測(cè)試文件,然后將DLL工程設(shè)置成active ,這時(shí)候會(huì)出現(xiàn)exe路徑提示對(duì)話框,我們將測(cè)試用的exe路徑填入就可以了。
相關(guān)文章推薦:
1.計(jì)算機(jī)專(zhuān)業(yè)實(shí)習(xí)日記
3.計(jì)算機(jī)程序員實(shí)習(xí)日記范文
4.計(jì)算機(jī)實(shí)習(xí)心得體會(huì)范文
5.計(jì)算機(jī)專(zhuān)業(yè)大學(xué)生實(shí)習(xí)報(bào)告范文
6.計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)實(shí)習(xí)日記
7.計(jì)算機(jī)系本科生畢業(yè)生實(shí)習(xí)報(bào)告
8.計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)實(shí)習(xí)總結(jié)報(bào)告
【計(jì)算機(jī)專(zhuān)業(yè)程序員實(shí)習(xí)日記】相關(guān)文章:
計(jì)算機(jī)專(zhuān)業(yè)實(shí)習(xí)日記10-01
計(jì)算機(jī)專(zhuān)業(yè)實(shí)習(xí)日記03-30
計(jì)算機(jī)專(zhuān)業(yè)實(shí)習(xí)日記01-24
計(jì)算機(jī)專(zhuān)業(yè)頂崗實(shí)習(xí)日記11-10
計(jì)算機(jī)專(zhuān)業(yè)認(rèn)識(shí)實(shí)習(xí)日記11-27
計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)實(shí)習(xí)日記11-05
計(jì)算機(jī)專(zhuān)業(yè)實(shí)習(xí)日記5篇11-06
計(jì)算機(jī)專(zhuān)業(yè)實(shí)習(xí)日記30篇11-26