• VC技巧记录


    写VC程序时,总是要查很多用法,甚至以前用过的也忘记怎么用了,还要再查一遍.所以从今天起在这里把每次用到的技巧都记下来.

    1. 设置键盘精灵时学到的技巧

    键盘精灵使用模态对话框,在DoModal之前把第一个字符赋给编辑框.

    在键盘精灵中添加OnInitDialog函数,方法是在类向导的虚函数中找到它添加.

    在OnInitDialog函数中写UpdateData(FALSE);将第一个字符给编辑框.

    选中编辑框,在属性对话框中的闪电符号(控件事件)中找到EN_CHANGE点右边添加OnEnChangeEdit1函数,在该函数中写入((CEdit*)GetDlgItem(IDC_EDIT1))->SetSel(-1);来取消第一个字符被选中的状态.

    再找到EN_SETFOCUS,添加OnEnSetfocusEdit1函数.此函数执行当编辑框内容更新的时候的处理.

    先添加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程序即可.

  • 相关阅读:
    安卓项目文件夹解析
    网页嵌入腾讯视频方式
    Thinkphp3.23 连接MSSQL方法
    .NET 出现参数化查询 需要参数但未提供该参数的错误
    .NET 原理之 ViewState
    VS2012创建WebForm项目提示错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”。
    及时返回,业务逻辑异步实现
    linux常用命令
    ES报错引发的问题
    mall项目遇到的异常
  • 原文地址:https://www.cnblogs.com/saieuler/p/3511209.html
Copyright © 2020-2023  润新知