VC小技巧汇总之控件技巧

本文搜集汇总了VC小技巧的控件技巧,对于进行VC开发来说有一定的借鉴价值,具体如下:

1.如何隐藏和显示控件

用CWnd类的函数BOOL ShowWindow(int nCmdShow)可以隐藏或显示一个控件。
例1:

CWnd *pWnd;
pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT为控件ID号
pWnd->ShowWindow( SW_HIDE );   //隐藏控件

例2:

CWnd *pWnd;
pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT为控件ID号
pWnd->ShowWindow( SW_SHOW );   //显示控件

2.按钮的使能与禁止

用ClassWizard的Member Variables为按钮定义变量,如:m_Button1;

m_Button1.EnableWindow(true);  //使按钮处于允许状态
m_Button1.EnableWindow(false);  //使按钮被禁止,并变灰显示

3.改变控件的大小和位置

用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小和位置。

void MoveWindow(int x,int y,int nWidth,int nHeight);
void MoveWindow(LPCRECT lpRect);

第一种用法需给出控件新的坐标和宽度、高度;
第二种用法给出存放位置的CRect对象;
例:

CWnd *pWnd;
pWnd = GetDlgItem( IDC_EDIT1 );  //获取控件指针,IDC_EDIT1为控件ID号
pWnd->MoveWindow( CRect(0,0,100,100) ); //在窗口左上角显示一个宽100、高100的编辑控件
SetWindowPos()函数使用更灵活,多用于只修改控件位置而大小不变或只修改大小而位置不变的情况:
BOOL SetWindowPos(const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);

第一个参数一般设为NULL;
x、y控件位置;cx、cy控件宽度和高度;

nFlags常用取值:

SWP_NOZORDER:忽略第一个参数;
SWP_NOMOVE:忽略x、y,维持位置不变;
SWP_NOSIZE:忽略cx、cy,维持大小不变;

例:

CWnd *pWnd;
pWnd = GetDlgItem( IDC_BUTTON1 );  //获取控件指针,IDC_BUTTON1为控件ID号
pWnd->SetWindowPos( NULL,50,80,0,0,SWP_NOZORDER | SWP_NOSIZE ); //把按钮移到窗口的(50,80)处
pWnd = GetDlgItem( IDC_EDIT1 );
pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER | SWP_NOMOVE ); //把编辑控件的大小设为(100,80),位置不变
pWnd = GetDlgItem( IDC_EDIT1 );
pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER ); //编辑控件的大小和位置都改变

以上方法也适用于各种窗口。

4.单选按钮控件(Radio Button)的使用

(1)对单选按钮进行分组:

每组的第一个单选按钮设置属性:Group,Tabstop,Auto;其余按钮设置属性Tabstop,Auto。
如:
Radio1、Radio2、Radio3为一组,Radio4、Radio5为一组
设定Radio1属性:Group,Tabstop,Auto
设定Radio2属性:Tabstop,Auto
设定Radio3属性:Tabstop,Auto
设定Radio4属性:Group,Tabstop,Auto
设定Radio5属性:Tabstop,Auto

(2)用ClassWizard为单选控件定义变量,每组只能定义一个。如:m_Radio1、m_Radio4。

(3)用ClassWizard生成各单选按钮的单击消息函数,并加入内容:

void CWEditView::OnRadio1()
{
  m_Radio1 = 0;  //第一个单选按钮被选中
}
void CWEditView::OnRadio2()
{
  m_Radio1 = 1;  //第二个单选按钮被选中
}
void CWEditView::OnRadio3()
{
  m_Radio1 = 2;  //第三个单选按钮被选中
}
void CWEditView::OnRadio4()
{
  m_Radio4 = 0;  //第四个单选按钮被选中
}
void CWEditView::OnRadio5()
{
  m_Radio4 = 1;  //第五个单选按钮被选中
}

当控件变量值为0时,它对应组的第一个单选按钮处于选中状态。

(4)设置默认按钮:

在定义控件变量时,ClassWizard在构造函数中会把变量初值设为-1,只需把它改为其它值即可。
如:

//{{AFX_DATA_INIT(CWEditView)
m_Ridio1 = 0;  //初始时第一个单选按钮被选中
m_Ridio4 = 0;  //初始时第四个单选按钮被选中
//}}AFX_DATA_INIT

4.旋转控件(Spin)的使用

当单击旋转控件上的按钮时,相应的编辑控件值会增大或减小。其设置的一般步骤为:

(1)在对话框中放入一个Spin控件和一个编辑控件作为Spin控件的伙伴窗口

设置Spin控件属性:Auto buddy、Set buddy integer、Arrow keys
设置文本控件属性:Number

(2)用ClassWizard为Spin控件定义变量m_Spin,为编辑控件定义变量m_Edit,定义时注意要把m_Edit设置为int型。

(3)在对话框的OnInitDialog()函数中加入语句:

BOOL CMyDlg::OnInitDialog()
{
  CDialog::OnInitDialog();

  m_Spin.SetBuddy( GetDlgItem( IDC_EDIT1 ) ); //设置编辑控件为Spin控件的伙伴窗口
  m_Spin.SetRange( 0, 10 );  //设置数据范围为0-10
  return TRUE;
}

(4)用ClassWizard为编辑控件添加EN_CHANGE消息处理函数,再加入语句:

void CMyDlg::OnChangeEdit1()
{
  m_Edit = m_Spin.GetPos();  //获取Spin控件当前值
}

5.UpdateData()

对于可以接收数据的控件,如编辑控件来说,UpdateData()函数至关重要。当控件内容发生变化时,对应的控件变量的值并没有跟着变化,同样,当控件变量值变化时,控件内容也不会跟着变。
UpdateData()函数就是解决这个问题的。
UpdateData(true);    把控件内容装入控件变量
UpdateData(false);   用控件变量的值更新控件
如:有编辑控件IDC_EDIT1,对应的变量为字符串m_Edit1,

(1)修改变量值并显示在控件中:

m_Edit1 = _T("结果为50");
UpdateData(false);

(2)读取控件的值到变量中:

用ClassWizard为IDC_EDIT1添加EN_CHANGE消息处理函数,这个函数在编辑控件内容发生变化时执行。

void CEditView::OnChangeEdit1()
{
  UpdateData(true);  //更新变量值
}
(0)

相关推荐

  • VC++的combobox控件用法汇总

    在VC++程序设计中,combobox控件是再普通不过的窗体元素控件了,而对于新手来说,掌握combobox 的各种用法显得尤其重要,本文就来总结一些实用的combobox控件用法,供大家参考. 一.添加/删除Combo Box内容: 1. 一般是在ComboBox控件属性的Data标签里添加,一行表示ComboBox下拉列表中的一行,换行用ctrl+回车. 2. 在程序初始化时动态添加,如:控件内容初始化: CString strTemp; ((CComboBox*)GetDlgItem(ID

  • c#调用vc写的ocx控件示例

    在c#中怎样调用VC写的OCX控件,主要有两个关键环节 两个关键环节:导入ocx控件,创建实例. 1 注册ocx: 复制代码 代码如下: regsvr32.exe alasunsmscon.ocx 2 在CMD窗口中执行: 复制代码 代码如下: AxImp.exe alasunsmscon.ocx 生成两个文件:alasun.dll,Axalasun.dll 3 在项目中引用Axalasun.dll 4 调用 复制代码 代码如下: Axalasun.Axalasunsms sms = new A

  • .net mvc页面UI之Jquery博客日历控件实现代码

    一.效果图 二.页面文件 页面上需要添加<div id="cal"></div>标记. 三.JS代码 复制代码 代码如下: // JavaScript 日历 $(document).ready(function () { //当前时间 $now = new Date();                      //当前的时间 $nowYear = $now.getFullYear();          //当前的年 $nowMonth = $now.get

  • ASP.NET MVC引入JQUERY JQRTE控件

    主要步骤如下: 1,在asp.net mvc项目中引入jqrte类库,声明辅助类用于存储服务器端上载文件的信息 复制代码 代码如下: public class ViewDataUploadFilesResult { public string message { get; set; } //public int Length { get; set; } public string imagepath { get; set; } public string error { get; set; }

  • Vc++ 控件List Control用法总结

    1.新建对话框MFC,在对话框上放一个ListCtrl ID:IDC_PATH View:Report 2.为ListCtrl添加变量 右击->添加变量m_wndPath 3.找到OnInitDialog()函数添加如下代码: // TODO: 在此添加额外的初始化代码 m_wndPath.DeleteAllItems();//清空 m_wndPath.InsertColumn(0,_T("项目"));//添加列 m_wndPath.InsertColumn(1,_T("

  • VC中Tab control控件的用法详细解析

    1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish. 2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST 在More Styles里勾上Bottom. 调速尺寸使其布满整个对话框, 我这边Tab Control的尺寸最后为164X203. 在ClassWizard为其添加变量, 变量名为m_tab. 类型为CTabCtrl. 3. 在对话框的初始化函数OnInitDialog

  • VC++ 自定义控件的建立及使用方法

    一.VC++定义自定义控件与delphi,VB有些差异. delphi,vb在 file-new-other中建立.vc++在工具栏中就有自定义控件,但必须加入控件类型. 许多书籍都在类向导中建立.我这里介绍的是手动建立,其结果是一样的. 二.建立过自定义控件类型: 2.1.把工具栏上的自定义控件放入对话框中    2.2.建立Mycontrol.h, Mycontrol.cpp文件    2.3.Mycontrol.h中的定义是 #ifndef __MYCTROLTRL_H__ #define

  • VC++中HTControl控件类之CHTRichEdit富文本编辑控件实例

    本文所述CHTRichEdit控件类继承自CRichEditCtrl,为了避免CRichEditCtrl的界面风格与CRichEditCtr的滚动条不相协调,因此在CHTRichEdit控件中去掉了CRichEditCtrl的默认滚动条,替换成自己绘制的滚动条,这样就不会破坏整体外观了.替换的滚动条并不需要与默认的滚动条同样的宽度,不受操作系统主题的影响,可以支持任意的宽度,而且在不需要滚动条时它会自动消失,使软件布局不会受到影响. 具体实现代码如下: #if !defined(__CHTRic

  • VC++中HTControl的CHTButton按钮控件类用法实例解析

    本文以实例形式讲解了VC++中HTControl控件类的CHTButton按钮控件类用法,相信对大家更好的理解VC++有一定的帮助.具体内容如下: 一般了解VC++的朋友都知道,VC++ 按钮控件CHTButton隶属HTControl控件组,直接由WIN32 API实现,你可以在SDK,MFC,wxWidget等环境下使用它.支持生成各种类型的按钮,比如:普通按钮,PNG透明按钮,复选框按钮,单选按钮等.使用时请注意,窗体必须动态创建,代码段如下: m_HTBtnClose.Create(75

  • VC小技巧汇总之控件技巧

    本文搜集汇总了VC小技巧的控件技巧,对于进行VC开发来说有一定的借鉴价值,具体如下: 1.如何隐藏和显示控件 用CWnd类的函数BOOL ShowWindow(int nCmdShow)可以隐藏或显示一个控件. 例1: CWnd *pWnd; pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT为控件ID号 pWnd->ShowWindow( SW_HIDE ); //隐藏控件 例2: CWnd *pWnd; pWnd = GetDlgItem( I

  • Android实现在列表List中显示半透明小窗体效果的控件用法详解

    本文实例讲述了Android实现在列表List中显示半透明小窗体效果的控件用法.分享给大家供大家参考,具体如下: Android 在列表List中显示半透明小窗体效果的控件,多的不多直接上代码,要说的都在注释里了: import com.hiapk.market.R; import android.content.Context; import android.graphics.PixelFormat; import android.os.Handler; import android.view

  • 微信小程序 input输入框控件详解及实例(多种示例)

    微信小程序 input输入框控件 今天主要详写一下微信小程序中的Input输入框控件,输入框在程序中是最常见的,登录,注册,获取搜索框中的内容等等都需要,同时,还需要设置不同样式的输入框,今天的代码中都要相应的使用. 首先主页面中将登录的样式进行了简单展示和使用, 代码如下: <!--index.wxml--> <!--如果在同一个form表单中创建了多个input输入框,可以给给每个输入框,创建自己的 name="userName"属性,可以区别哪个输入框,并通过添

  • 微信小程序 点击控件后选中其它反选实例详解

    微信小程序 点击控件后选中其它反选实例详解 前言: 如果需要实现进来进行给按钮加上买一送一的样式,或者单击就选中单个按钮,只能靠css结合js进行控制了,小程序暂时没有这样的控件. 实现效果图: 微信小程序进来的时候自动进行按钮样式的初始化,这个需要一个字段做判断,加上正则表达式wxml文件: <block wx:for="{{liuliangItems}}"> <block wx:if="{{item.one2one == 1}}"> &l

  • 微信小程序点击控件修改样式实例详解

    微信小程序点击控件修改样式实例详解 现在要在微信小程序中实现点击控件修改样式,如下: 微信小程序中不支持直接操作dom,要实现这种效果,我们需要通过设置data,然后利用数据和界面的双向绑定来实现它. 第一步:在wxss中定义被点击和未被点击的样式,如下: .service_selection .is_checked{ border: 1px solid #FE0002 ; color: #FE0002 ; background: #fff; } .service_selection .norm

  • 微信小程序选择图片控件

    本文实例为大家分享了微信小程序选择图片控件的具体代码,供大家参考,具体内容如下 xml: <loading hidden="{{loadingHidden}}"> 加载中... </loading> <view class="add_carimg"> <block> <view class="load_iamge"> <text class="load_head_text

  • Android开发技巧之ViewStub控件惰性装载

    在4.5.6节介绍过一个<include>标签,该标签可以在布局文件中引用另外一个布局文件,并可以覆盖被引用布局文件根节点所有与布局相关的属性,也就是以android:layout开头的属性.通过<include>标签可以将一个非常庞大的布局文件分解成若干个较小的布局文件,而且这些小的布局文件也可以被多次引用,从而达到一个重用的目的. <include>标签固然很好用,但有一个问题,就是布局文件中的控件并不一定在程序启动时全都用到,有一些控件只在特定的情况下才会被使用到

  • WPF开发技巧之花式控件功能扩展详解

    目录 No1. 自定义控件模板 No2. 重写控件 No3. 附加属性来试试 总结 文章默认你已经入门WPF了 ​ WPF日常开发,经常遇到默认的控件功能不满足需求,怎么办? No1. 自定义控件模板 ​ 平时开发中,经常遇到比较"俗"的需求,嫌弃控件默认的样子.怎么办?哈哈,那就整个容呗.....

  • DLL+ ActiveX控件+WEB页面调用例子

    一. 概述 因项目需要,开始学习并研究VC.DLL及ActiveX控件,网上资料找了很多,但没一个可用的或者说没一个例子可理解并运行的.没办法,自己研究吧.功夫不负有心人,终有小成了,呵呵,现在把自己学习总结了一下,献给需要的人. DLL(动态链接库): 分WIN32 DLL和MFC DLL ActiveX:分ATL控件和MFC控件两类(也是一个DLL) WEB:JAVASCRIPT 调用-> ActiveX调用-> DLL 完成加法运算并返回值,在页面上显示. 二.开发(VS2008) 1.

随机推荐