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

相关文章
相关标签/搜索