MFC第一课 控件使用技巧

简介:

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,如需转载请自行联系原作者



相关文章
|
测试技术
艾伟:WinForm控件开发总结(二)------使用和调试自定义控件
在上一篇文章里我们创建了一个简单的控件FirstControl,现在我来介绍一下怎么使用和调试自己的控件。我希望将过程写的尽可能的详细,让想学习控件开发的朋友容易上手,高手们见谅。       在同一个solution里添加一个Windows Application工程(在Solution Explorer里右键点击CustomControlSample solution选择Add->New Project…),命名为TestControl。
857 0
|
C# C++
WPF编游戏系列 之四 用户控件
原文:WPF编游戏系列 之四 用户控件        在上一篇《WPF编游戏系列 之三 物品清单》中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2.2中使用的C#代码过多,其实我在写这些代码时也有同感,的确很繁琐也不好维护。
588 0
|
C# 前端开发
WPF编游戏系列 之二 图标效果
原文:WPF编游戏系列 之二 图标效果        本篇将要实现图标的两个效果:1. 显示图标标签,2. 图标模糊效果。在上一篇中提到Image没有HTML 的Title属性(在MSDN中也没找到类似的属性),所以本篇将自行制作一个标签,它的功能是当鼠标移动到图标上方时会显示该图标的Tag说明,并且该图标模糊显示,如下图对比所示。
718 0
|
C#
WPF编游戏系列 之六 动画效果(1)
原文:WPF编游戏系列 之六 动画效果(1)        本篇主要针对界面进行动画效果处理。首先在打开或关闭界面时,使其产生动态效果而不是生硬的显示或消失(如下图)。其次在鼠标放到关闭窗口图标上时,使其出现闪动效果。
660 0
[UWP]了解模板化控件(1):基础知识
原文:[UWP]了解模板化控件(1):基础知识 1.概述 UWP允许开发者通过两种方式创建自定义的控件:UserControl和TemplatedControl(模板化控件)。这个主题主要讲述如何创建和理解模板化控件,目标是能理解模板化控件常见的知识点,并且可以创建扩展性良好的模板化控件。
1097 0
|
开发者
[UWP]了解模板化控件(2):模仿ContentControl
原文:[UWP]了解模板化控件(2):模仿ContentControl ContentControl是最简单的TemplatedControl,而且它在UWP出场频率很高。ContentControl和Panel是VisualTree的基础,可以说几乎所有VisualTree上的UI元素的父节点中总有一个ContentControl或Panel。
1067 0