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



相关文章
|
2月前
|
C# UED 定位技术
WPF控件大全:初学者必读,掌握控件使用技巧,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,控件是实现用户界面交互的关键元素。WPF提供了丰富的控件库,包括基础控件(如`Button`、`TextBox`)、布局控件(如`StackPanel`、`Grid`)、数据绑定控件(如`ListBox`、`DataGrid`)等。本文将介绍这些控件的基本分类及使用技巧,并通过示例代码展示如何在项目中应用。合理选择控件并利用布局控件和数据绑定功能,可以提升用户体验和程序性能。
46 0
Qt开发Activex笔记(三):C#调用Qt开发的Activex控件
Qt开发Activex笔记(三):C#调用Qt开发的Activex控件
Qt开发Activex笔记(三):C#调用Qt开发的Activex控件
Qt开发Activex笔记(二):Qt调用Qt开发的Activex控件
Qt开发Activex笔记(二):Qt调用Qt开发的Activex控件
Qt开发Activex笔记(二):Qt调用Qt开发的Activex控件
|
开发工具 Android开发 C语言
Qt编写自定义控件18-魔法小鱼
一、前言 上次发了个纯painter绘制的老鼠,那个就是qt目录下的demo,改的,只是比demo中的老鼠稍微胖一点,估计人到中年都发福吧。这次来一个魔法小鱼,这条鱼可以变换颜色,尾巴还会摇动,可以设定旋转的角度以及尾巴摆动的幅度等,原理是参考网上一个安卓大神写的(绘制原理 https://www.jianshu.com/p/3dd3d1524851)。
918 0
|
Windows
艾伟:WinForm控件开发总结(一)------开篇
我本人不是专业的控件开发人员,只是在平常的工作中,需要自己开发一些控件。在自己开发WinForm控件的时候,没有太多可以借鉴的资料,只能盯着MSDN使劲看,还好总算有些收获。现在我会把这些经验陆陆续续的总结出来,写成一系列方章,希望对看到的朋友有所帮助。
985 0
|
测试技术
艾伟:WinForm控件开发总结(二)------使用和调试自定义控件
在上一篇文章里我们创建了一个简单的控件FirstControl,现在我来介绍一下怎么使用和调试自己的控件。我希望将过程写的尽可能的详细,让想学习控件开发的朋友容易上手,高手们见谅。       在同一个solution里添加一个Windows Application工程(在Solution Explorer里右键点击CustomControlSample solution选择Add->New Project…),命名为TestControl。
886 0
|
C# C++
WPF编游戏系列 之四 用户控件
原文:WPF编游戏系列 之四 用户控件        在上一篇《WPF编游戏系列 之三 物品清单》中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2.2中使用的C#代码过多,其实我在写这些代码时也有同感,的确很繁琐也不好维护。
608 0
|
Android开发 Java API
自定义控件探索之旅一2(笔记)
前言:这是自定义控件探索之旅的第二篇,上一篇主要介绍了安卓自定义控件的基础,这些基础内容主要有Android的坐标系、角度与弧度的换算、安卓的颜色介绍。这一篇我们继续自定义控件的探索之旅。
960 0
|
Android开发
自定义控件探索之旅一1(笔记)
前言:自定义控件,是Android攻城狮进阶的必备技能,是Android应用研发的一门高级艺术,所以接下来的文章主要是学习和探索自定义控件,方便开发使用以及日后查阅。
1185 0