程序員實習日記(通用8篇)
程序員實習日記 篇1
ListCtrl中LVITEM lpara有很廣泛的用處,我們可以通過這個參數實現list控件的排序功能,這里需要注意的是使用LVITEM中的LPARAM,但是SetItemData 函數似乎又是對LVITEM 的lPara進行設置的,這里的關系似乎很微妙,但是我們一定要注意 不能混淆。類中的成員函數可以單獨的聲明為模板函數,但是模板函數的實現要放在頭文件中。GDI+中沒有提供繪制圓角方的函數,我們需要通過GraphicPath類進行模擬來實現。
鼠標跟蹤消息的要點:響應消息WM_MOUSEMOVE WM_MOUSELEAVE WM_MOUSEHOVER 在WM_MOUSEMOVE消息中處__TrackMouseEvent函數。
程序員實習日記 篇2
CToolTipCtrl 函類中的RelayEvent函數的存在理由,試想當我們的鼠標在一個窗體上滑動的時候,會發生什么情況,如果鼠標下方的窗體是一個子窗體,那么這個子窗體將會收到鼠標的消息,而主窗體的鼠標消息因此被屏蔽,windows是通過這種方式來處理消息的,這里CToolTipCtrl對象也需要受到消息來進行處理,但是這些鼠標消息卻不能流向CToolTipCtr對象,這就是問題的關鍵之所在,如何將消息導向CtoolTipCtrl就成了關鍵,一般我們會在PretranslateMessage函數中攔截消息之后使之導向CTOOLTipCtrl,這個導向所用的函數就是RelayEvent函數。
有關ToolTip控件的討論目前還存在疑惑,1當我們使用LPSTR_TEXTCALLBACK的時候,為什么ON_NOTIFY可以得倒響應消息,卻會在某個時間點出現Stack run over的錯誤。
程序員實習日記 篇3
我們在使用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路徑填入就可以了。
程序員實習日記 篇4
第一次是來面試,當時感覺不怎么好,面試的人問了一些問題有些沒回答上來,這并不奇怪,c#自己學習了2個月,然后就沒怎么用,回答不上我覺得可以理解。沒想到還能第二次來到公司,由于對環境還比較陌生,所以今天大概熟悉了一點,成都這邊有50多個員工,屬于研發中心,主要從事無線微波得較大型的設備的再加工,聽同事說以前在北京,但由于北京人力資源太貴所以來到成都,這聽起來怎么像是在壓榨的感覺啊,沒關系,只是來實習而已。
對于今天的第一個小任務,要求:界面、數據壓入堆棧、簡單冒泡排序實現數據有序輸出、堆排序輸出。讓我快速地熟悉了c#,從界面到后臺都得到了加強,此外在實現過程中對用到的冒泡排序和堆排序有了更深的理解,并能用c#熟練的實現。
程序員實習日記 篇5
今天采用抽象工廠模式對實例進行改進,以達到動態加載算法實例,抽象工廠模式屬于設計模式中的內容,自己在學習視頻的時候注意到了,所以之前就買了本大話設計模式來學習,可以說了解了大部分設計模式。今天遇到后自己心里也有底,溫故一下書就知道怎么做 了,可以說這是我學習的方法。
針對以上,在dll中提供一個接口,兩個算法都繼承了該接口,對于該dll的操作都通過接口isort進行,此外,修改工廠為抽象工廠,提供一個接口創建算法,在算法中返回isort實例,在主函數中使用該實例進行對應的排序算法操作,充分顯示了抽象工廠的作用,本例子將反射和抽象工廠模式結合,增加了程序的可擴展性和可維護性。
程序員實習日記 篇6
由于黎甫對dll的要求發生變化,今天就不斷修正dll程序,并驗收,再結合group的窗口排列方式對dll中的窗體進行測試。我現在才明白,編寫代碼是一件很容易的事,但是編寫好的代碼卻是很難的事情,好的代碼要有可維護性、可擴展性,這樣在修改的話就很簡單,可不能像我昨天寫得代碼,根本談不上藝術,所以一旦面對客戶的要求,改動就很困難,這一點值得我繼續學習。
至于可擴展性也是對維護的擴充,因為顧客的要求有可能隨時都在改變,我們也得適應客戶的要求,如果軟件有了可擴展性,那么它的改動就比較小,就能適應顧客的要求。所有上面說的這些都是自己要學習的地方,這樣在以后的商業開發中才能游刃有余,應對自如。
程序員實習日記 篇7
今天繼續昨天的任務,做一個小測試,將現今做的項目所有代碼進行整合測試,測試要求是在數據庫中配置菜單項,動態添加幾項菜單項,在不同點擊下動態從dll中加載窗體讀取配置文件進行排列,順利完成。
程序員實習日記 篇8
今天對昨天的實例進行了改進和提高,將堆排序和冒泡排序封裝在一個動態鏈接庫中,提供函數調用和事件委托。此外加入xml進行配置,在xml中存入相關配置信息,提供一個單獨的xmlclass對其進行操作,加深了對xml的理解。為增加程序的性能,采用簡單工廠模式對其客戶端和算法操作進行分離,有很好的可擴展性,對于c#的動態鏈接庫和xml配置不怎么熟悉,花了很長一段時間看書和網上查資料,才開始動手寫代碼,不過感覺還是很快,因為自己有編程的能力,可以說掌握了一種快速編程的方法,所以就能駕輕就熟。