freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

電話薄管理系統(tǒng)的設計實現(xiàn)畢業(yè)論文(編輯修改稿)

2025-07-15 15:24 本頁面
 

【文章內容簡介】 dTreeList為核心完成的。1. 函數(shù)OnSelchangedTreeList要添加響應函數(shù)OnSelchangedTreeList,可以先切換到資源視圖,然后選中主對話框左側的樹控件,并在其上點擊鼠標右鍵,選中彈出菜單中的“屬性”,此時將彈出屬性窗口。在屬性窗口中可以看到一個閃電的圖標,把鼠標放在上面會有一個提示信息:控件事件。點擊閃電圖標,在下面的列表中找到TVN_SELCHANGED,單擊和此事件相對應的右邊空白處,會出現(xiàn)一個下拉列表:添加OnSelchangedTreeList。選擇了之后VS2008將自動在程序中添加TVN_SELCHANGED事件的處理函數(shù)OnSelchangedTreeList,并在當前工作區(qū)中顯示代碼編輯窗口。函數(shù)OnSelchangedTreeList首先通過樹控件的GetSelectdItem方法取得當前選擇項,然后通過GetParentItem取得父節(jié)點。如果沒有父節(jié)點,則表明其為組節(jié)點,否則表明其為聯(lián)系人節(jié)點。如果是組節(jié)點,則應先通過函數(shù)CollapseTree收起當前所有展開項,然后通過Expand方法展開當前選中的組,最后通過SwitchData將此前顯示的聯(lián)系人信息清空,并將“更新”按鈕禁用而將“增加”按鈕啟用。如果為聯(lián)系人節(jié)點,則通過CPeople取得當前選定聯(lián)系人信息,然后通過函數(shù)SwitchData將聯(lián)系人信息顯示于界面中,并將“更新”按鈕啟用而將“增加”按鈕禁用。函數(shù)OnSelchangedTreeList部分代碼如下: HTREEITEM hItem = ()。 //取得當前選擇節(jié)點的句柄 if(hItem != NULL) { if((hItem) == NULL) //如果沒有父節(jié)點 {// 選中組 CollapseTree()。// 收起所有展開項 // 展開選中的組 (hItem, TVE_EXPAND)。 (hItem)。 INTERFACECTRLDATA temp。 SwitchData(temp, true)。// 清空聯(lián)系人信息 // 更新按鈕禁用 GetDlgItem(IDC_BUTTON_EDIT)EnableWindow(FALSE)。 // 增加按鈕啟用 GetDlgItem(IDC_BUTTON_APPEND)EnableWindow(TRUE)。 2. 函數(shù)CollapseTree函數(shù)CollapseTree的功能是將所有展開的組收起,它實現(xiàn)的方式是首先取得樹控件的第一項,也就是第一個組節(jié)點,并將其收起,然后依次取得其后繼兄弟節(jié)點(即其他組節(jié)點)函數(shù)CollapseTree代碼如下:void CAddressListDlg::CollapseTree(){ HTREEITEM htiItem = ()。 while(NULL != htiItem) { (htiItem, TVE_COLLAPSE)。 htiItem = (htiItem)。 } }3. 函數(shù)SwitchData在函數(shù)OnSelchangedTreeList中調用了SwitchData,其功能是將數(shù)據顯示于窗口各控件或從窗口控件中取得當前輸入的值,它的第一個參數(shù)為INTERFACECTRLDATA類型的引用,其成員包含了聯(lián)系人的各項信息,具體定義如下:typedef struct{ CString strName。 bool bSex。 CString strCompany。 CString strPhoneInCompany。 CString strHomeAddress。 CString strPhoneInHome。 CString strMobile。 CString strMail。 CString strQq。 CString strMsn。 CString strMemory。}INTERFACECTRLDATA。函數(shù)OnSelchangedTreeList的第二個參數(shù)是一個布爾型的參數(shù),當它的值為邏輯真時,函數(shù)OnSelchangedTreeList將第一個參數(shù)中傳入的聯(lián)系人信息顯示于窗口之上;而當它的值為假時,函數(shù)OnSelchangedTreeList則將當前窗體中各控件設定的值保存于第一個參數(shù)傳入的INTERFACECTRLDATA結構體變量的各成員之中。函數(shù)SwitchData的部分代碼如下:void CAddressListDlg::SwitchData(INTERFACECTRLDATA amp。info, bool flag){ If (flag) {// 更新界面 m_address = 。 m_pany = 。 … … else {// 取數(shù)據 UpdateData(TRUE)。 = m_address。 ()。 //刪除數(shù)據前面的空格、換行符等 ()。 //消除從右側起所遇到的所有空格字符 查詢聯(lián)系人信息在通訊錄中的聯(lián)系人較多時,通過左側的分組樹進行聯(lián)系人查找不是很方便,而且,有時候用戶也記不清楚要查找的聯(lián)系人被放人了哪個組之中,因此提供通過姓名進行查找的功能是必要的。在主窗口中單擊“查詢”按鈕,將彈出一個輸入姓名的對話框,然后程序通過設定的姓名在所有聯(lián)系人中查找指定姓名的聯(lián)系人。同樣地,有時候用戶可能不記得要查找的聯(lián)系人的全名叫什么,只記得姓氏或者姓名中的某個字,這個時候模糊查詢就起到作用了,只要在查詢對話框中輸入關鍵字,程序將會找到所有擁有此關鍵字的姓名。怎么樣,是不是很方便?姓名查詢對話框在實例中對應的類是CQueryPeopleDialog,它有一個公共數(shù)據成員m_peopleName,在對話框中設定的姓名就保存在這個成員變量中,然后主程序取得它的值后執(zhí)行具體的查詢工作。查詢功能則是在主窗體類CAddressListDlg的函數(shù)OnOK中實現(xiàn)的(從函數(shù)名稱可以知道,“查詢”按鈕是將“確認”按鈕的標題更改之后實現(xiàn)的)。執(zhí)行查詢時,以用戶輸入的姓名為查詢條件,并指定以組ID的降序、聯(lián)系人ID升序返回查詢結果,這樣的排序安排可以在存在多個同名的聯(lián)系人時,在界面左側的樹控件中由上而下地定位這些姓名相同的聯(lián)系人。在存在符合指定姓名的情況下,函數(shù)從樹控件最上面的組開始查找該聯(lián)系人所在的位置,其定位依據是通過GetItemData方法取出存儲在聯(lián)系人節(jié)點中的聯(lián)系人ID,如果查找到與當前查詢記錄相符的聯(lián)系人,則讓其處于當前選中狀態(tài)。而如果存在有姓名相同的聯(lián)系人,即對數(shù)據庫的查詢結果存在多條記錄時,則還使用函數(shù)MessageBox彈出一個對話框詢問用戶是否要查看下一個聯(lián)系人的信息。函數(shù)OnOK的部分代碼如下: // 取得待查詢聯(lián)系人名 CString strPeopleName = 。 // 實現(xiàn)關鍵字查詢 CDatabase db。 CPeople people(amp。db)。 CString checksql。 (select * from people where fullName like 39。%%%s%%39。 \ order by groupId desc,id, strPeopleName)。 (AFX_DB_USE_DEFAULT_TYPE,checksql)。連接數(shù)據庫要使用關鍵字查詢的話,用format( select * from XX where username like 39。%%%s%% 39。 ,m_username)。 其中,兩個%%在C中是作為一個%處理的。 追加新的聯(lián)系人信息在需要追加新的聯(lián)系人信息時,需要先在左側的樹控件中選中準備將新聯(lián)系人加入的組,此時界面上的各編輯框顯示的信息將被清空,而“增加”按鈕將變?yōu)榭捎脿顟B(tài),在各編輯框中輸入新的聯(lián)系人信息后單擊“增加”按鈕,即可將新的聯(lián)系人加入到選定的組中。再選中組名時清空當前編輯框顯示的信息,以及使得“增加”按鈕可用是在時間響應重復。將新的聯(lián)系人信息追加到數(shù)據庫的功能是由“增加”按鈕的事件響應函數(shù)OnButtonAppend完成的。函數(shù)OnButtonAppend首先調用函數(shù)CheckInPutInfo檢查輸入的新的聯(lián)系人信息是否合法,如果通過檢查,則先調用函數(shù)GetCurrentSelGroupId嘗試取得當前選中的組的ID,然后調用函數(shù)SwitchData取得界面設定的新聯(lián)系人信息,并根據是否成功取到組ID分別生成不同的INSERT插入語句。在取得組ID失敗時,插入聯(lián)系人信息時將不插入組ID信息,而根據數(shù)據庫的設計,組ID將默認為“未分組”的ID。在生成SQL指令以后,通過CDatabase的ExecuteSQL方法執(zhí)行它,而在將新的聯(lián)系人插入到數(shù)據庫之后,則先清空界面當前顯示,然后調用函數(shù)RefurTree,以便及時將新添加的聯(lián)系人也顯示于左側的樹控件之中。當取得組ID失敗時,默認將聯(lián)系人信息添加到“未分組”里面去。函數(shù)OnButtonAppend部分代碼如下:// 生成插入指令 CString strSql。 If (nGroupId == 1) //取得組ID失敗,即默認“未分組” { CString strFormat = INSERT INTO people(fullName, sex, pany, \ phoneInCompany, homeAddress, phoneInHome, mobile, mail, qq, \ msn, memory) VALUES(39。%s39。, %d, 39。%s39。, 39。%s39。, 39。%s39。, 39。%s39。, 39。%s39。, 39。%s39。, 39。%s39。, 39。%s39。, 39。%s39。)。 (strFormat, , , , , , , , , , , )。 }如果獲取了組ID,則將聯(lián)系人添加到該組,SQL語句應該加上一個groupId。在函數(shù)OnButtonAppend中調用的函數(shù)GetCurrentSelGroupId可以取得當前的組ID,如果當前選中項為組,則通過GetItemData直接取得其組ID;如果當前選中項為聯(lián)系人,則先取得其父節(jié)點,即當前選中聯(lián)系人所屬的組節(jié)點,然后再取得其組ID。函數(shù)GetCurrentSelGroupId的部分代碼如下:int CAddressListDlg::GetCurrentSelGroupId(){ int nGroupId = 1。 HTREEITEM hSelItem = ()。// 取得當前選中項 If ((hSelItem) == NULL) {// 選中組 nGroupId = (hSelItem)。 }else {// 選中聯(lián)系人 HTREEITEM hGroupItem。 hGroupItem = (hSelItem)。 nGroupId = (hGroupItem)。}函數(shù)OnButtonAppend中調用的另外一個函數(shù)是RefurTree,它首先取得當前選中的項,然后識別出選中項為組還是聯(lián)系人,如果為組,則保存其組ID;如果為聯(lián)系人,則保存其所屬的組的ID。然后調用函數(shù)InitTreeList初始化左側樹控件數(shù)據,最后則根據此前紀錄的組ID及聯(lián)系人ID將當前選擇項設定為相應的組,而如果聯(lián)系人ID不為1,即此前也保存了聯(lián)系人ID時,則進一步將當前選擇項設定為該聯(lián)系人ID所對應的聯(lián)系人。函數(shù)RefurTree部分代碼如下所示:函數(shù)RefurTree部分代碼如下:// 記錄當前選中項 HTREEITEM hSelItem = ()。 int nGroupId = 1。 int nPeopleId = 1。 if((hSelItem) == NULL) {// 選中組 nGroupId = (hSelItem)。 } else {// 選中聯(lián)系人 HTREEITEM hGroupItem。 hGroupItem = (hSelItem)。 nGroupId = (hGroupItem)。 nPeopleId = (hSelItem)。} 修改聯(lián)系人信息當聯(lián)系人的信息發(fā)生變化時,需要對聯(lián)系人的信息進行更新,在本系統(tǒng)中,只需要直接在各編輯框中輸入更新后的信息,然后單擊“更新”按鈕即可完成更新?!案隆卑粹o的事件處理函數(shù)為OnButtonEdit,其主要操作時先通過函數(shù)SwitchData將界面設定的信息存入INTERFACECTRDATA類型的結構變量interfaceCtrlData,然后取得當前聯(lián)系人的ID,并依據該ID將界面數(shù)據更新到數(shù)據庫中。函數(shù)OnButtonEdit的部分代碼如下:// 更新數(shù)據 CDatabase db。 (address)。 CString strSql。 (UPDATE people SET fullName=39。%s39。, sex=39。%d39。, pany=39。%s39。,… …) 刪除聯(lián)系人信息在選中某個聯(lián)系人時,單擊“刪除”按鈕即可將當前聯(lián)系人刪除,“刪除”按鈕的事件響應函數(shù)OnButtonRemove通過調用函數(shù)RemovePeople完成指定ID的聯(lián)系人的刪除。函數(shù)RemovePeople首先使用CDatabase的Open方法打開數(shù)據源連接,然后根據作為參數(shù)傳入的聯(lián)系人ID生成SQL刪除指令,最后調用ExecuteSQL執(zhí)行刪除指令。
點擊復制文檔內容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1