新建工程,注意选择 MFC AppWizard(exe),并输入工程名
在d出的对话框中选择【基于对话框】,然后确定
在对话框界面中,删除不需要的静态文本控件,并添加listcontrol列表控件
右击控件,在样式中选择【报告】
右击列表控件,选择【建立类向导】。在d出的对话框中,选择 Member Variables
在下面的控件中,点击选中IDC_LIST1,点击右上角的【Add Variable】
在d出的添加控件变量对话中,输入控件变量的名称,并确定
下面的类别和变量类型保持默认即可。
之后回到之前的 MFC ClsssWizard 对话框,点击确定即可。这样就成功给控件添加一个控制变量了 .
在项目名Dlg.cpp文件中的OnInitDialog()函数里添加代码晌知旅
注意,在这宴凳个函数的最后,return TRUE 前添加代码。
列表中,插入一列,用函数InsertColumn()。其参数依次表示:列号,列标题, 对齐方式,列宽,子视图的索引。
在插入列后,用函数InsertItem()来添加行。其第一个参数表示行的索引,第二个参数表示插入的文本。
添加行后,给行设置文本用函数SetItemText()。其第一个参数猛橡为行号,第二个参数为列号,第三个参数表示设置的文本信息。
程序运行后的结果
可以根据需要设置多列,改变标题、行和列的内容。体会其函数的使用顺序和调用方法。自己试着多写几次就可以记住啦
注意事项
在控件listcontrol中添加数据时,要先添加行信息,再添加列信息
其实是有的,返姿在ListActivity中有一个方法很容易被忽略,ensureList(),这是唯一一个设置了layout的地方,漏余绝但是不是在oncreate中设置的,listActivity没有实现onCreate方法,继续找,发现在onRestoreInstanceState(), setListAdapter()和毁雀getListView()中调用了,也就是说在这3个方法中都有可能会执行setContentView方法,
知道这个就好办了,
解决方法一:在oncreate方法中调用getListView()代替掉上面的setContentView(R.layout.main)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE)
//代替掉setContentView
getListView()
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_1)
}
ListActivity 使用的是默认的setContentView(com.android.internal.R.layout.list_content)你也可乎迟以使用自定义塌顷段的布局文件,只要list的id设置为android:id/list就行团誉了欢迎分享,转载请注明来源:内存溢出
评论列表(0条)