VC技巧記錄

寫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程序便可.

相關文章
相關標籤/搜索