MFC控件使用技巧:Static Text
1)单独设置某个静态文本控件的属性:
颜色,字体大小
解决方案:需要指定一个独特的ID,默认情况下,所有的
静态文本框的ID是一致的
2)设置按钮的文本的时候,使用&可以在文本的标题下的第一个字母带下划线:
把Caption改为&Hello
MFC控件使用技巧:List Control
1)每列内容过长,显示不完整
只有加载数据的情况下,才会出现水平滚动条
解决方案:
可以添加如下一个空的内容项:
m_List.InsertItem(0,NULL);//为了显示进度条
2)不允许点击修改第一列(当然最多能够让我们改动的也只有他了)
MFC默认情况下可以修改第一列,其他的不允许修改(需要定制DrawItem)
解决方案:
Edit Labels 属性设置为 False
3)报表的形式表示
View 属性设置为 Report
4)注意:不要和列表框控件混淆(英文名: List Box)
中文名:通用列表控件
MFC控件使用技巧:Combo Box
1 AddString 和InsertString的区别
InsertString可以指定一个显示的排列的序号,
所有的字符串根据序号排列,AddString只是将
字符串添加到下拉列表,至于该字符串的位置
不得而知,而且添加字符串的时候,会影响以前
的序号。
InsertString使用情形:需要默认指定某一个序号
的字符串显示,搭配SetCurSel,将字符串显示出来
2)是否允许编辑
Type 属性设置为Drop List 不允许编辑
Type 属性设置为DropDown 允许编辑
3)显示下拉内容
ShowDropDown
4)GetLBText和GetWindowText区别
GetLBText()函数.该函数为组合框成员函数其原型为:
void GetLBText( int nIndex, CString &rString ).
参数说明:nIndex为列表框中数据的索引值, rString 为字符串,
函数说明:把索引号为nIndex的数据放到rString变量中.
GetWindowText()该函数获得显示的文本内容.每个控件都有.不能显示的内容无法获得
例子:
CComboBox* combo= ( CComboBox*)GetDlgItem(ID_COMBO1);
int nIndex = combo->GetCurSel();
// 获取当前选中的项目ID。
CString strItem;
combo->GetLBText( nIndex, strItem); // 就是得到选中的字符串了。
MFC控件使用技巧:设置BUTTON的图标
说明:IDI_ICON1是ICON ID ,IDC_BUTTON1是BUTTON ID
环境:VS2005 MFC
解决方案:
HICON hIcon;
hIcon=AfxGetApp()->LoadIcon(IDI_ICON1);
GetDlgItem(IDC_BUTTON1)->ModifyStyle(0, BS_ICON, 0);
GetDlgItem(IDC_BUTTON1)->SendMessage(BM_SETIMAGE, (WPARAM)IMAGE_ICON, (LPARAM)hIcon );
错误的方案:
m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);
GetDlgItem(IDC_BUTTON1)->SetIcon(m_hIcon, TRUE);
GetDlgItem(IDC_BUTTON1)->SetIcon(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1)),TRUE);
VS2003版本之后,就不会在类向导中出现该函数了
只需要手动添加该虚函数即可
类头文件中声明如下:
virtual BOOL OnInitDialog();
类cpp文件中定义如下:
BOOL CEditDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//TODO添加对话框控件的初始化代码
}
本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1955671,如需转载请自行联系原作者