寫VC程序時,老是要查不少用法,甚至之前用過的也忘記怎麼用了,還要再查一遍.因此從今天起在這裏把每次用到的技巧都記下來.函數
1. 設置鍵盤精靈時學到的技巧code
鍵盤精靈使用模態對話框,在DoModal以前把第一個字符賦給編輯框.事件
在鍵盤精靈中添加OnInitDialog函數,方法是在類嚮導的虛函數中找到它添加.資源
在OnInitDialog函數中寫UpdateData(FALSE);將第一個字符給編輯框.it
選中編輯框,在屬性對話框中的閃電符號(控件事件)中找到EN_CHANGE點右邊添加OnEnChangeEdit1函數,在該函數中寫入((CEdit*)GetDlgItem(IDC_EDIT1))->SetSel(-1);來取消第一個字符被選中的狀態.io
再找到EN_SETFOCUS,添加OnEnSetfocusEdit1函數.此函數執行當編輯框內容更新的時候的處理.date
先添加UpdateData(TRUE); //更新編輯框數據技巧
再添加while (m_list.DeleteItem(0)); //刪除列表中全部數據程序
再添加方法
//將符合的股票代碼插入列表
int count = 0;
for (int i = 0; i < pTotal->number; i++)
{
if (CString(pTotal->stocks[i].code).Find(m_name) != -1)
m_list.InsertItem(count++, CString(pTotal->stocks[i].code));
}
再添加
if (m_list.GetItemCount()) //選中第0個
m_list.SetItemState(0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
這裏的參數不能是LVIS_SELECTED,不然按上下鍵,仍是會先選中第0行.
選中listControl,在屬性對話框的屬性中做以下修改:Always Show Selection設爲true,這樣即便listControl失去焦點,也能被選中;View設爲Report,不然內容將顯示不全,這個很重要;No Column Header設爲true,隱藏列標題.
鍵盤精靈中再添加PreTranslateMessage虛函數,攔截上下鍵和回車鍵.
VK_UP的響應爲 GetDlgItem(IDC_LIST2)->SendMessage(WM_KEYDOWN, pMsg->wParam, pMsg->lParam);
VK_RETURN的響應爲
pos = m_list.GetNextItem(-1, LVNI_SELECTED); //獲取選中的行號
if (pos == -1) //沒有選中
m_name = "";
else
m_name = m_list.GetItemText(pos, 0);
UpdateData(FALSE); //將m_name中的值更新到編輯框
查看別的窗口資源:
在VC中點菜單open,在open as中選Resources,打開要查看的exe程序便可.