控件方法MFC对话框编程(二):控件的访问

PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,码代几天不写就忘。目前又不当COO,还是得用心记码代哦!

    一、关于静态本文控件

    1、静态本文控件主要是用来起标识作用,所以他们的ID在刚创立时都是一样的。

    2、取获静态本文控件上表现的本文。

int GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const;

void GetWindowText( CString& rString ) const;

    3、取获静态本文间空对象的指针

CWnd::GetDlgItem  
CWnd* GetDlgItem( int nID ) const;

void CWnd::GetDlgItem( int nID, HWND* phWnd ) const;

    4、设置静态本文控件上表现的符字

void GetWindowText( CString& rString ) const;

    二、关于编辑框控件

    1、拜访编辑框控件的方法一

    

GetDlgItem(IDC_EDIT1)->GetWindowText(a,10);//a是一个指向符字串的指针

    实现加法的码代如下

char a[10],a1[10],a2[10];
int num1,num2,num3;
GetDlgItem(IDC_EDIT1)->GetWindowText(a,10);
GetDlgItem(IDC_EDIT2)->GetWindowText(a1,10);num1=atoi(a);
num2=atoi(a1);
num3=num1+num2;//char *_itoa( int value, char *string, int radix );
itoa(num3,a2,10);

    GetDlgItem(IDC_EDIT3)->SetWindowText(a2);




    2、方法二

CWnd::GetDlgItemText  
int GetDlgItemText( int nID, LPTSTR lpStr, int nMaxCount ) const;

int GetDlgItemText( int nID, CString& rString ) const;

    3、方法三

UINT GetDlgItemInt( int nID, BOOL* lpTrans = NULL, BOOL bSigned = TRUE ) const;

    该函回返编辑本文框控件的符字串并已把他装换位整形据数。

    4、方法四

    将控件与一个成员变量相联关

void CTestDialog::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTestDialog)
    每日一道理
巴尔扎克说过“不幸,是天才的进升阶梯,信徒的洗礼之水,弱者的无底深渊”。风雨过后,眼前会是鸥翔鱼游的天水一色;走出荆棘,前面就是铺满鲜花的康庄大道;登上山顶,脚下便是积翠如云的空蒙山色。 在这个世界上,一星陨落,黯淡不了星空灿烂,一花凋零,荒芜不了整个春天。人生要尽全力度过每一关,不管遇到什么困难不可轻言放弃。

    DDX_Text(pDX, IDC_EDIT1, m_edit1); DDX_Text(pDX, IDC_EDIT2, m_edit2); DDX_Text(pDX, IDC_EDIT3, m_edit3);

    //}}AFX_DATA_MAP }

    该函数由应用程序框架调用,实现了对话框控件与类成员变量之间的联关,据数交换。

    意注:程序码代不必调用该函数实现据数之间的交互,可以通过调用CWnd::UpdateData()接间实现据数的交互。

UpdateData();//用控件上的值更新变量
m_edit3=m_edit1+m_edit2;
UpdateData(

    false

    );//用变量的值更新控件表现的值

    5、方法五

    将控件联关一个控件变量

void CTestDialog::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTestDialog)

    DDX_Control(pDX, IDC_EDIT3, m_cedit3); DDX_Control(pDX, IDC_EDIT2, m_cedit2); DDX_Control(pDX, IDC_EDIT1, m_cedit1);

    DDX_Text(pDX, IDC_EDIT1, m_edit1); DDX_Text(pDX, IDC_EDIT2, m_edit2); DDX_Text(pDX, IDC_EDIT3, m_edit3); //}}AFX_DATA_MAP }

    此时m_cedit1就是一个CEit对象,可以用使GetWindowText()拜访编辑框间空中的内容。

    6、方法六、发送息消的式方 (WM_TEXT)

LRESULT SendMessage(  HWND hWnd,      // handle to destination window
  UINT Msg,       // message  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter);

    7、方法七、发送息消的式方(直接给子控件发送息消)

LRESULT SendDlgItemMessage(  HWND hDlg,      // handle to dialog box
  int nIDDlgItem, // control identifier  UINT Msg,       // message to send
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter);

    三、总结

    控件和方法

    

    

    

文章结束给大家分享下程序员的一些笑话语录: 话剧:程序员过沟
  本剧内容纯属虚构,如有雷同……HEHE……俺也没办法了。
  话说某市街道改建,某某软件公司门口横七竖八挖了几条大沟。一群程序员(SDK程序员赵某,VB程序员钱某,VC程序员孙某,DELPHI程序员李某)下班从公司里出来,看到门前的几条沟,于是各显神通……门前第一条沟也就半米来宽,SDK程序员赵某二话没说,轻轻一跃跳了过去,看到其它人纷纷把随身携带的公文包(类库)横在沟上踩着过沟,不屑地说,这么小一条沟,犯得着小题大做用那个吗?看我多么轻松多么洒脱多么……多么……(众人皆怒目横视之……)
  接着第二条沟有点宽度。SDK程序员赵某还是还是一马当先,飞跃而起……不好,还差一点才到……幸好凭着多年的(跳远?编程?)经验,单手抓住沟沿,颤巍巍地爬了上来,嘴里还念念有词“高手就是高手啊,虽然差一点就……不过毕竟……HEHE……跳远是过沟的基础嘛,有基础(SDK)就有一切的说……”(众人作瞠目结舌状……)看到别人跳过去了,可自己又跳不了那么远,只好再想办法了……VB程序员钱某,DELPHI程序员李某打开手提,连上手机,开始上网找可供过沟的控件……VC程序员孙某却不慌不忙,打开公文包,把几块衬板拆了下来,然后三下五除二拼成一个简易木桥……“虽然这几个板子(类)做得不怎么样,不过先把这个项目应付过去,有时间我自己做一个好了……”于是踩着板子过了沟。
  这时钱某和李某也分别找到了合适的东东。钱某找到的是“钢丝绳.ocx”,安装简单,使用方便,拉出一头,对孙某说“大虾,顺手拉兄弟一把……”,于是把绳子系在沟两边的绿化树木上,踩着钢丝就过了沟。刚刚站稳就四方作揖,“小生这里有礼了”。这时一戴着黄袖圈的老太太跳了出来,抓住钱某,“破坏绿化树木,罚款XXXX元,交钱,交钱,交钱!”(老人家作双枪老太婆怒视伪军状
……钱某被逼无奈,只好边掏钱,边对着后台叫道“导演,我这可是因公牺牲,不给个烈士称号也得报销”,后台一个臭鸡蛋飞出,“叫什么叫,我这个月的粮饷还不知哪里去领呢,都什么时代了,你不下岗都不错了……”)
  李某看着刚刚好不容易从台湾拖回来的“铝条.ZIP”

posted @ 2013-05-09 19:17  xinyuyuanm  阅读(273)  评论(0编辑  收藏  举报