清泛IT社区App Inventor 2 中文社区

搜索

扫码访问移动社区 移动社区,您的掌上技术专家

关注我,精彩不错过! 关注我,精彩不错过!

扫码安装最新版AI伴侣 最新版AI伴侣v2.72

Aia Store .aia 源码一站式解决方案 发布日志AI2连接测试ai2Starter模拟器

开通会员送SVIPApp Inventor 2 拓展有奖征文 VIP会员享专有教程,免费赠送基础版*技术支持服务! AI2入门必读中文文档中文教程IoT专题

查看: 797|回复: 0
打印 上一主题 下一主题

CreateWindow()动态创建一个EditBox

  • TA的每日心情
    开心
    2024-03-14 20:36
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    70

    主题

    117

    帖子

    1420

    积分

    AppInventor2 SVIP会员

    积分
    1420
    跳转到指定楼层
    楼主
    发表于 2014-12-26 09:42:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 zqp2013 于 2015-1-4 16:21 编辑

    在Win32代码或MFC代码中动态创建一个EditBox:

    在OnInitDialog()函数中:

            // 创建EditBox
            HWND m_wndEdit = CreateWindow(_T("EDIT"), 0, WS_CHILD | WS_VISIBLE | ES_WANTRETURN,
                    70, 4, 60, 16, m_hWnd, 0, 0, 0);
            // 显示
            ::ShowWindow(m_wndEdit, SW_SHOW);

    常见错误解决思路:
    1.创建失败,不显示输入框等。DWORD errno = GetLastError() 查看错误代码。
    2.不可在类的构造函数中创建Edit,因为此时主窗口还没有被创建出来,导致出现“Cannot create a top-level child window”错误。


    -----------------------------------------------------------------------------------------
    创建好了EditBox,需要处理其输入事件,如下:
    先给它设置一个ID(可以在resource.h中指定)
            m_wndEdit = CreateWindow(_T("EDIT"), 0, WS_CHILD | WS_VISIBLE | ES_WANTRETURN,
                    70, 4, 60, 16, m_hWnd, (HMENU)IDC_EDIT_SEARCH, (HINSTANCE)GetWindowLong(m_hWnd, GWL_HINSTANCE), 0);
            //::SetWindowLong(m_wndEdit, GWL_ID, IDC_EDIT_SEARCH);  //效果和上面一样


    BEGIN_MESSAGE_MAP(CMainDlg, CDialogEx)
            ...
            ON_EN_CHANGE(IDC_EDIT_SEARCH, OnSearchEditCommand)
    END_MESSAGE_MAP()


    void CMainDlg::OnSearchEditCommand()
    {
            CString strSearch;
            GetDlgItemText(IDC_EDIT_SEARCH, strSearch);
            AfxMessageBox(strSearch);
    }


    这样,文本框中有输入后,消息框便会提示其输入的内容。

    另外,如何设置输入框焦点,请参照:http://bbs.tsingfun.com/thread-3-1-1.html
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    © 2024 tsingfun.com, Inc.  沪ICP备2020034476号-1  沪公网安备31011702000040号

    GMT+8, 2024-11-22 08:42 , Processed in 0.018531 second(s), 32 queries .