Windows标准控件在可视化编程中的应用.ppt

* 例如,下面代码分配一个CListBox对象并返回指向该对象的指针: CListBox *pMyListBox=new CListBox(); 指针pMyListBox用CListBox::Create()方法进行初始化 该方法声明如下: BOOL Create ( DWORD dwStyle, // 列表框控件的窗口样式 const Recy rect, // 指明控件的大小和位置 CWnd* pParentWnd, // 指向控件所有者的指针 UINT nID // 控件标识 ) * 9.5.3 列表框和应用程序之间消息传递 * 1. 列表框向应用程序发送消息 当用户与列表框交互时,列表框向应用程序发出WM_COMMAND消息。该消息字参数的高字节为标识列表框动作的消息通知码(如LBN_DBLCLK标识用户双击);低字节为控件标识值。 LBN_SELCHANGE: 列表框中的用户选择已发生改变 LBN_DBCLK: 双击 LBN_SELCANCLE: 列表框中的选择被取消 LBN_SETFOCUS: 列表框收到输入焦点 LBN_KILLFOCUS: 列表框失去输入焦点 * 2.应用程序向列表框发送消息 应用程序对列表框的操作通过调用函数SendMessage或SendDlgItemMessage向其发送各种消息完成。 * 9.5.4 列表框应用举例 【例7-4】创建一个单选列表框,并在该列表框中列出当前目录的文件,双击后删除该项 * 主要步骤如下: (1)在对话框上放置一个List Box(IDC_LIST_DIR)控件和一个Static(IDC_STATIC_DIR )控件。List Box控件用于显示文件名称,Static控件用于显示当前显示的文件所在的目录 (2)为List Box控件添加CListBox类型成员变量——m_list * (3)在OnInitDialog函数中添加初始化列表框内容的代码 BOOL CMy9_4Dlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here DWORD cchCurDir = MAX_PATH; LPTSTR lpszCurDir; CHAR tchBuffer[MAX_PATH]; lpszCurDir = tchBuffer; GetCurrentDirectory(cchCurDir, lpszCurDir); DlgDirList(lpszCurDir, IDC_LIST_DIR, IDC_STATIC_DIR, 0); return TRUE; } 获得当前目录 设置列表框显示条目为当前目录下所有文件名 * (4)为了实现双击条目删除的功能,需要响应列表框的LBN_DBLCLK消息 void CMy9_4Dlg::OnDblclkListDir() { // TODO: Add your control notification handler code here int i = m_list.GetCurSel(); CString str; m_list.GetText(i, str); m_list.DeleteString(i); CString msg = LItem +str+L deleted!; AfxMessageBox(msg); } * 9.6 编辑框控件 编辑框控件看起来是个非常简单的矩形窗口,但它具有许多功能,编辑框控件可以自带滚动条,显示多行文本。 CEdit是CWnd类直接派生来的,这就意味着它具有CWnd的所有功能 编辑框控件 单行编辑框控件 多行编辑框控件 * * * 9.6.2 编辑框与应用程序间的消息传递 编辑框通过向其父窗口发关WM_COMMAND消息通知应用程序用户的交互信息 应用程序对编辑框的操作通过调用函数SendMessage或SendDlgItemMessage * 9.6.3 编辑类编程实例 单击Showl,则在Edit1编辑框中显示“This is the first EditBox.” 单击Clear1,则Edit1编辑框中的内容被清除; 单击Show2,则在Edit2编辑框中显示“This is the second EditBox!” 单击Clear2,则Edit2编辑框中的内容被清除; 单击Transfer,则把Edit1编辑框的内容复制到Edit2的编辑框中去 单击Undo,

文档评论(0)

1亿VIP精品文档

相关文档