注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

一江春水向西流

程序人生

 
 
 

日志

 
 
关于我

夫君子之行,静以修身,俭以养德.非澹泊无以明志, 非宁静无以致远.夫学须静也,才须学也,非学无以广才,非志无以成学,淫漫则不能励精,险躁则不能治性,年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及!

网易考拉推荐

VC中Windows常用控件的创建和使用  

2009-06-16 16:04:56|  分类: C/C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

作者: 中国电波传播研究所青岛分所郎锐

本文将要介绍的Windows控件指的是Windows系统预定义的标准控件,如按钮控件、编辑控件和列表控件等

  引言

  本文将要介绍的Windows控件指的是Windows系统预定义的标准控件,如按钮控件、编辑控件和列表控件等。这些预定义控件实际是一种特殊的子窗口,主要供用户同应用程序的交互之用。和普通窗口类一样,每一个预定义控件也都是由所属的窗口类规定了自身的外观属性和具有的功能。Windows系统通过预定义的方式提供了一些标准控件的窗口类名,在程序设计时只需通过调用CreateWindow()函数或CreateWindowEx()函数并将预定义的窗口类名作为参数传入即可创建出相应的控件。当用户通过屏幕对象同控件进行交互操作时,控件将以"通知消息"的形式向父窗口发送WM_COMMAND通知消息,消息的wParam参数含有控制标识,在lPamam参数的高位字和低位字中分别含有通知码和控制句柄,由父窗口完成对消息的响应处理。

  按钮类控件

  按钮类控件是窗口类名被系统预定义为BUTTON的一类控件,该类控件具有十余种不同的窗口风格,包含了普通的下压式按钮、单选按钮、复选按钮和分组框等多种常用的按钮形式。具体情况列表如下:

按钮风格 说明
BS_AUTOCHECKBOX 同复选按钮类似,点击一下选中,再次点击取消。
BS_AUTORADIOBUTTON 同单选按钮类似,点击后选中标志将从同组的其他单选按钮处移到当前选项。
BS_AUTO3STATE 同三态复选按钮类似,只是在用户点击后改变状态。
BS_CHECKBOX 复选按钮
BS_DEFPUSHBUTTON 下压按钮,具有较黑的边框。
BS_GROUPBOX 分组框
BS_LEFTTEXT 同单选按钮或复选按钮配合使用,标题将显示在左侧。
BS_OWNERDRAW 可创建一个拥有者自绘按钮。
BS_PUSHBUTTON 普通下压按钮
BS_RADIOBUTTON 单选按钮
BS_3STATE 三态复选按钮

  以上按钮风格通常需要同窗口风格共同使用,由CreateWindow()函数或MFC的CButton类成员函数Create()完成对按钮的创建:

// 按钮类窗口风格
DWORD STYLE[9] = {BS_AUTOCHECKBOX,
BS_AUTORADIOBUTTON,
BS_AUTO3STATE,
BS_CHECKBOX,
BS_DEFPUSHBUTTON,
BS_GROUPBOX,
BS_PUSHBUTTON,
BS_RADIOBUTTON,
BS_3STATE};
// 动态创建按钮
for (int i = 0; i < 9; i++)
{
m_ctrButton[i].Create("BUTTON", WS_VISIBLE | WS_CHILD | WS_BORDER | STYLE[i], CRect(10 + 110 * i, 10, 100 + 110 * i, 40), this, IDC_BUTTON1 + i);
}

  如果需要处理按钮发送给其父窗口的消息,可以在进行消息响应的类实现中添加一个如下形式的消息映射入口和相应的消息处理函数:

ON_Notification(id, memberFxn )

  其中,id为发送通知消息的按钮ID号,memberFxn为消息处理函数。如果按钮是以new操作符的方式在堆(heap)内创建一个CButton对象,那么就必须确保在关闭窗口前能调用delete销毁该对象。如果CButton对象是在栈上创建的就不必显式销毁对象了,应用程序在退出时会自动予以销毁。

 编辑类控件

  以窗口类名"EDIT"创建的编辑类控件是一个可以用来接受用户键盘字符输入的矩形区域,可以在其内进行编辑操作。该控件是程序接受用户字符输入的一种主要手段,输入的内容存放在其父窗口容量有限的(32KB)局部堆中。

  MFC的CEdit类提供了有关编辑类控件的功能函数。编辑控件既可以在对话框模板上创建也可以通过代码来直接创建,这两种方式均要通过CEdit的构造函数来构造一个CEdit对象。CEdit类从CWnd继承了一些重要的函数,比如可以通过使用CWnd类成员函数SetWindowText()和GetWindowText()来设定和获取一个编辑控件中的文本。同按钮类控件类似,如果要处理由编辑控件发送给其父窗口的通知消息,需要在父窗口类中为每一个待处理消息增添消息映射入口和消息响应函数。

  在调用Create()函数创建编辑控件时,Windows系统将发出WM_NCCREATE、WM_NCCALCSIZE、WM_CREATE和WM_GETMINMAXINFO等消息给编辑控件。这些消息缺省地分别由OnNcCreate()、OnNcCalcSize()、OnCreate()和OnGetMinMaxInfo()等CWnd类成员函数进行处理,可以根据实际需要对其进行重载使用。作为一种特殊的窗口,编辑控件除了需要指定普通窗口风格外,还可以通过选用不同的控件风格而获取相应的功能效果,可选用的编辑风格列表如下:

编辑风格 说明
ES_AUTOHSCROLL 当在行尾添加一个字符后自动向右滚动10个字符。
ES_AUTOVSCROLL 当输入回车后自动上滚一行。
ES_CENTER 字符居中显示。
ES_LEFT 字符左对齐。
ES_LOWERCASE 统一转化为小写字母。
ES_MULTILINE 允许多行显示。
ES_NOHIDESEL 当编辑失去焦点时隐藏对字符的选定,重新获得焦点后以反色显示选中内容。
ES_OEMCONVERT 将ANSI字符转化为OEM字符。
ES_PASSWORD 以星号显示字符,多用于回显密码。
ES_RIGHT 字符右对齐
ES_UPPERCASE 统一转化为大写字母。
ES_READONLY 设置字符为只读。
ES_WANTRETURN 接受回车键输入。

  下面给出创建、用编辑控件的蕆蒔kTD>分组 对字符的选:iD>ES_WAN只读>分禦> ES_WAN2有的功能。WindownNcC1识hasc其R> 由毙的字符对可选一个待处函士丶过取相检测处理是否发生了D>BS。手段窗口蠕入清单1 cellSpacing=0 width="90%" alig" bgColor=#cccccc align=center> // 按钮类窗口风格
DWORD STYLE[可选r=1 bo部分member= 0⒊鯳M_NCCREA数创, WS_恍┲ WS_CHILDER | STYLE[i], CRect(10 + 110 * i, ゼ淙搿i, ゴ钮酪桓鲎址i, ゴ钮雷远瞎+ 110 * i,, 5DC_25DC_a r}_杂美1LE> 数创, WS_恍┲ 功能。Windown("H=ceo World!"LE>E可选一个待处函士丶数创= {{AFX_MSG(CS85%le02V> fx_msg void OnEnCnter; 数创= }}AFX_MSG数创DECLARE_MESSAGE_MAP(ⅰ碆EGIN_MESSAGE_MAP(CS85%le02V> + 1V> //{{AFX_MSG_MAP(CS85%le02V> ) ::OnEnCnter; 数创TTON"= 0一个待处士丶过数创AfxM!-- /@Box("_OEM已D>BS!"LE>
  如果需要处理按钮发送给其父.ydstSPAN L04'Boxㄖ纱唇ń换ブ迷诖翱谧鳌D谂ァ⒂猩杓迫∠ ES禦> 条目,D>ES的条目dow愿美嘌丈獵OLOR_H ES"问鼴O <"有厦户同应件类似,如同控件浪此相关件-INDE蚩裳=组合÷:在屁过代码组合控
ES或被鼠标双  宏dit到桓龃ν趌P姆绞皆建立起R> 关系。罥ND框。编辑通的下窗口wbor件现将罥ND框wbor及UTOC罥ND1 cellSpacing=0 width="90%" align=center>   下面给D>   下面给D>   下面给D> <nheight=7%bsL3STUSEENTSTOPSD> 更新pIND_NOHIDD><nheight=7%bsL3STH符RINGSTD>  下面给D> <nheight=7%bsL3STNOI/TDGRALHE< 0c0c0 ES_A)ES_A值TD>含义D>< <>) <>4TD>pIND框t礒盏紼>< <>) <>5TD>pIND框t礒禄馝>< <>) <>-2TD>pIND框存储溢砳dtIOBUTTON 2TD>双 条目dtIOBUTTON )1TD>D>BS形择dtIOBUTTON _AUT形择dtIOBUTTONdtI唇ā⒂帽嗉丶氖r蒔号,me最经常控件的-礁龅∕MAND褪荓BN_DBLCLK和LBN_隐睠RANGE。对于不BS双  是pIND框条目 索引值< 0c0c0 C_LIS1LE> I 更AUTORAD"I 更1BOR"I 更2BOR"I 更3BOR"I 更4BOR"I 更5BOR"I 更6BOR"I 更7BOR"I 更8BOR"I 更9"int i
{
m_ctrButton[i].Create("BU, WS_L04'Box.AddStr> (I 更Ai]ri数创= 0D>ES第4> 条目数创, WS_L04'Box.功腃urSe (3LE> 肺募控 //{{AFX_MSG(CS85%le02V> fx_msg void OnLbnDblClk 数创= }}AFX_MSG数创DECLARE_MESSAGE_MAP(ⅰ= 0应的类督均MMAND蛂=R> 
(R>射入文伎匦 碆EGIN_MESSAGE_MAP(CS85%le02V> + 1V> //{{AFX_MSG_MAP(CS85%le02V> ) 克鵰m.lof 碋ND_MESSAGE_MAP(ⅰ= 0应的类督LBN_DBLCLK均MMAND蛂=1on( 磛oid CS85%le02V> ::OnLbnDblClk(TON"= 0得到D>BS_A口乎目 索引 
Ind _ct, WS_L04'Box.鼵urSe 数创= 得到此乎目 _OEM 碼Arr 瓒ê[20]i数创, WS_L04'Box.定(Ind , 瓒êri数创= 0。<舕P框报告得到D腳OEM 碅fxM!-- /@Box(CStr> (瓒ê)ri数创>  如果需要处理按钮发送给其父辑控虽然组合控厦户同pIND框和的选:隽淖楹韶件ES的ND_质沟米楹峡赝潘裳∷舻弊 控件独罰am可选获E丶<墓omboBox数。编辑反砷合控话框模支持SW在E丶等CWnd类成秇a⒊鯳组合控媳取相蝇函省用砷合控话wbor胆参见下表nfo>↓创数创0 width="90%" align=center>
ES_AUTOCHECKBOX IOBUTTON <串 <>由÷拉-IND况聊R>   下面给D> ÷拉-IND始终_NOHIDD><C3STSORTTD>> >ES吕-INDhe函暑目口,排蠴o>IOBUTTON <>分⒊鯳可选点涸取用r=1笮±淳贰M楹峡爻叽鏾>IOBUTTONdtI唇ā⒂帽嗉丶氖r蒔反砷合控口,输入也会<⒌膚Par均MMAND停1on(过程同前面几种可选丛"托∫煊邢潜械) 宏ABLE b均MMAND土腞> 的。下面靖窗出子窗) <>)ES_A将应事窗口IOBUTTON )双 S吕-INDES的暑目o>IOBUTTON0 wi者:)ES_AS吕IOBUTTON0 wi者:)ES_A的选:鯡S处理_OEM被改动o>IOBUTTON0 wi者:)IOBUTTON0 wi者:) <>砷合控驰,椅猒车某绦蚯肭蠓峙渥愎坏呢须鎜>IOBUTTON <>砷合控新获得焦o>IOBUTTON0 wi者:)ES_A选择发生变化o>IOBUTTON0 wi者:) <>砷合控IOBUTTONdtI唇ā⒂帽嗉丶氖r蒔最↓创↓创0 width="90%" alig" bgColor=#cccccc align=center> 0bcc5 C_问鼴OX1LE> I 更AUTORAD"I 更1BOR"I 更2BOR"I 更3BOR"I 更4BOR"I 更5BOR"I 更6BOR"I 更7BOR"I 更8BOR"I 更9"int i
{
m_ctrButton[i].Create("BU, WS_ComboBox AddStr> (I 更Ai]ri数创= 0D>ES第4> 条目数创, WS_ComboBox 功腃urSe (3LE> 肺募控 //{{AFX_MSG(CS85%le02V> fx_msg void OnCbnSe Cnter; 数创= }}AFX_MSG数创DECLARE_MESSAGE_MAP(ⅰ= 0督均MMAND蛂=士丶载狮R>射入文伎匦 碆EGIN_MESSAGE_MAP(CS85%le02V> + 1V> //{{AFX_MSG_MAP(CS85%le02V> ) ::OnCbnSe Cnter;(TON" = 0得到D>BS_A口乎目 索引 础
Ind _ct, WS_ComboBox 鼵urSe 数创 = 0得到此乎目 _OEM 础Arr 瓒ê[20]i数创 , WS_ComboBox 齃B瓒ê(Ind , 瓒êri数创 = 0。<舕P框报告得到D腳OEM 础fxM!-- /@Box(CStr> (瓒ê)ri数创>TD>  以窗树形可选口类名被系统预定树形可选同应用取相分级 位于_车牟树形可选非常适合于管理那些层 ┑菴Wnd类尝出Wp褂酶鍪餍慰裳『笕∠嗉δIsrc;L04' )()sc其R> 用个图 图位∩毙的ItByIdI 更 )()取相sc其字符数据项、〉回件HEREEITEM类型操爪理蜽_C位字了此字符新暑目的一爪理消媳妥善保管内然有毙的一爪理才,椅讼钅考绦址邮钅縪>等果在⒊鯳交互之函省用应的类爪理为NULLR> 蚪玠it翟鎏柯饥出W暑目o>下面这段过将一过上述()⒊鯳用个E餍慰裳〔⑾蚱渥址牟
_ctTVI_ROOT; = 0取用父爪理↓创tvItById.i 更_cttvI 更i = 0取用TV_ITEM结构>ES_↓创tvItById.hItByIdAfBS暑目爪理保存于hI 更0ag"碒EREEITEM hI 更0_ct, WS_TreeCtrl ItByIdI 更(&85%;tvItByIdLE>_cthI 更0i数创tvItById.i 更_cttvI 更i↓创tvItById.hItByIdAf贗OBUTTONI唇ā⒂帽嗉丶募亓诵柰  口和相) 口和相)↓创↓创辑控E餍慰裳S的任何用个暑目均取相R> 用个子暑目pIND旌此-INDE∠嗨媸贝τ谡箍蛩跗鹱CHECK互处于展开證HE父窗将应的子暑目dow运踅造 了9开与缩起證HE切换SW在子暑目pIND證HE发生D>BS时和證HED>BSABLE后E餍慰裳Eze、WMTVN_ITEMEXPAN覫NG和tTVN_ITEMEXPAN覧锌刂票晔丁 号它s系∕MAND图捌銩BLE含义可参见下表nlSpacing=0 width="90%" align=center> <>均MMAND汀tITVN_BEGINLABEL杂美ITVN_DETEITEMTD>删除禦> 取用r=暑目≮IOBUTTON0 wi者:TVN_ENDLABEL杂美I子暑目pIND正将展开或收起I同者:ES_A其内事窗口IOBUTTON on[i贗Ol> on[i贗Rl> on[i贗唇āl> on[i贗NT: l> on[i/Pl> on[i”疚慕"der=0 cellSpacin"l> 荳indows系统预定义的标准控件,如按钮控件、编辑控件和列表控件等。这些预定义控件实际是一种特殊 on[i/Pl> on[i”疚慕"der=0 cellSpacin"l> 辑控NT: 2on[i赑l> on[i”疚慕"der=0 cellSpacin"l> 辑控荳indows系统预定义的标准控件,如按钮控件、编辑控件和列表控件等。这些预定义控件实际是一种特殊的子窗口,主要供用户同应用程序的交互之用。和普通窗口类一样,每一个预定义控件也都是由所属的窗口类规定了自身的外观属性和具有的功能。Windows系统通过预定义的方式提供了一些标准控件的窗口类名,在程序设计时只需通过调用CreateWindow()函数或CreateWindowEx()函数并建)定义的窗口类名作为参数传入即可创建出相应的控件。当用户通过屏幕对象同控件进行交互操作时,控件将以"通知消息"的形式向父窗口发送WM"均MMAND"知消息,消息的wParam参数含有控制标识,在lPamam参数的高位字和低位字中分别含有通知码和控制句柄,由父窗口完成对消息的响应处理。

  按钮类控件 on[iBRl> 辑控on[iBl> 辑控件发送on[i贐l> on[iBRl> on[iBRl> 辑控辑控件发送的一类控件,该类控件具有十余种不同的窗口风格,包含了普通的下压式按钮、单选按钮、复选按钮和分组框等多种常用的按钮形式。具体情况列表如下:

按钮风格 说明
同竘ign=cen27%bsL3ST类薔DA嘤糜诨叵悦苈lign=cen73%bs⒊鯳控件R> 边界和垂直 分组框
分组框R>  下面给D> 同竘ign=cen27%bsL3STNOTIFYD>
同竘ign=cen27%bsL3STDISNT: NO腋鲎址笞远蛴lign=cen73%bs在条目不多点豪然_NOH并不起護n叮CE 字符居中蟣ign=cen27%bsL3ST示。  下面给D> 同竘ign=cen27%bsL3ST按臙NDED隐藏对字符的裭ign=cen73%bs可用SHIFT cl蟊昊蚴∮眉楹侠バ卧穸> 条目R>  下面给D> 同竘ign=cen27%bsL3ST示。
同竘ign=cen27%bsL3ST拥有者自籚ARINT: D>
同竘ign=cen27%bsL3ST拥有者自籉IXE用于回显密耹ign=cen73%bs⒊鯳控件R> 相同条目高定/dR> 同者:
以星号蟣ign=cen27%bsL3STNORE咦曰TD>
同者:
同竘ign=cen27%bsL3ST键输KEYBOA嘤INPUR>
同者:
<唇ā⒂帽嗉丶氖r蒔NcCal模琾IND框在每字符或删除禦> 条目后都编贾鼗婕裙趐IND框ES堆经育使几百条甚至上千条条目 嵋駿S_鼗娑鸨冉涎现丶了D。取相应的控件L3STNORE咦曰wbor域{止pIND框的> _鼗妗枚酝ü耞NOH时强制_鼗鎝IND框窗口过屏木筒槐分⒊鯳时未控件L3STNORE咦曰wbor件是程序增删条目前向pIND框wParam睸EERE咦曰、On内取用蹭不重绘件。 _鼗鎤bor。
// 按钮类窗口风格
DWORD STYCL04'Box , WS_L04'Box 数创= {止> _鼗媸, WS_L04'Box.ShomM!-- /@(am睸EERE咦曰, FALSE, cri数创= 0口,条目增删输入数创……数创= 0 _鼗媸, WS_L04'Box.ShomM!-- /@(am睸EERE咦曰, TRUE, cri
<唇ā⒂帽嗉丶氖r蒔pIND框闯鯳之初是不含任何条目 M帽嗉L04'Box创建: 的蕆赏ItByIdStr> 的蕆向pIND框。 L3ST繭RTwbor调用de新字符字串要椿置是不固禬s希魑执猒MUL口,排蠴;等果不R> 该wbor调新字串将字符到pIND况聊末尾R>↓创数创…控等果 眃类件是程控件功腎 更D163Ptr的蕆或功腎 更D163的蕆dow丶32位的指针(或w丶﨎OX,<的值 条目联系起来,并内蹿R> 后取相应的时,齀 更D163Ptr的蕆或齀 更D163的蕆编辑风te(样做聊目 是取相将罥ND框ES的条目同外部数据建立联系。例如:取相用这垂乖煲非常方便地dow丶ァ⒂械刂范嘀缁昂畔⒌腅ntNol地址等信lPam数据结构A琾I举在pIND框ES的持有人建立起关联』互从pIND框脂选ES_车南烁复翱∠嗟玫娇丶萌藄系ㄑ缎舕PR>↓创数创…控当输入pIND框父窗 嵊帽郺m参数含有、OnFxn为消细Φ睦啵趌P的高别何数码和字节钮、了一个码位字ASSW在件怠
 宏而R> 到etWindowTe。下表分组了-INDE虻募父龅∕MAND拖嗉案窳斜)↓创数创0 width="90%" align=center>
按钮风格 说明
同者:
同者:
同者:
蚅BN_DBLCLKdtIOBD>ES_A)
蚅BN_隐睠RANGETD>
蚅BN_隐睠ANCELdtIOBD>ES_A)ES_A3TD>
// 按钮类窗口风格
DWORD STY= 0⒊鯳并初始化pIND框数创= 0⒊鯳pIND框数创, WS_L04'Box.WS_CHILDER | STYLE[i], CRect(10 + 110 * i, L3ST类薔DA嘤,110 * 27DC_5DC_37DC_a r}
按钮风格 说明同>C3STATE,一个字符后自动向右滚动10个E> 将的选:鯡S的文字
虲3STDROPD拥觗tIOBD>ES_A同C3STSIMPL眞bor给其父> 下拉图位妆才会_NOHWM÷拉-INDo>IOBUTTON 虲3STDROPD拥覮IS纃tIOBD>ES_A同C3STDROPD拥痈涓>BS_AUTIOBUTTON 虲3STH符RINGSdtIOBD>ES_A⒊鯳_C个钮、复由字串组成函暑目 R> IOBUTTON 虲3ST狾EM字符。ES_PASSWORD 以星号显C3ST拥有者自籉IXE用于回显密>由÷拉-IND况聊R> IOBUTTON 虲3ST有者自籚ARINT: D>
同>C3STSIMPL盩D>
同者:
虲3STDISNT: NO腋鲎址笞远蛴>当S吕-IND_NOH_OEM过少时IOBUTTON 虲3STNOI/TDGRALHE
按钮风格 说明)ES_A象。S吕-INDo>IOBUTTON0 wi者:
)ES_A )ES_A IOBUTTON )
// 按钮类窗口风格
DWORD STY= 0砷合控的⒊鯳↓创= 0⒊鯳pIND可选↓创, WS_ComboBox WS_CHILDER | STYLE[i], CRect(10 + 110 * i, C3STDROPD拥+ 110 * 40DC_5DC_47DC_a r}
// 按钮类窗口风格
DWORD STYLE[⒊鯳用个E餍慰裳 , WS_TreeCtrl WS_CHILDER | STYLE[i], CRect(10 + 110 * i, TV骉D>SATROOTi, TVH符骉D>Si, TVH符TBODY>Si, TV杂美LABELS+ 110 * 50DC_5DC_201C_20r}
按钮风格 说明BS_A盛OnUTOCHECKBOX 同>TVN_BEGIN咦訥IBS_A开始拖拽输入授IOBUTTON0 wi者:BS_A开始的选 phiI同者:BS_A开始l蟊暧壹献淙胧贗OBUTTON0 wi者:
BS_A结噬OnNc phiI同者:BS_A钮类控件暑目新蔔OH<舕PI同者:子暑目pIND被展开或收起I同者:
蚑VN_隐睠RANGE用于回显密>暑目新选择发生D>BSI同者:BS_A暑目新选择dowrFx生D>BSI同者:BS_A均MM更新用个暑目知吓lPI""醇厍Win对Vpan编程中经常件淀函辑控可选 style="TE、E餍慰裳 IND可选和组合控可选等WM_NCCA可创建出时只需通过; i <、wborR> 一个盛On新誓消先_OEM入p薃BLE每也蔒,一过荳in前述_OEM窗搅者取相掌握子窗常件可选的禦般E丶椒ā6杂谇Win未提淀函号他WM_NCCA时只需通窗搅者种方一过给其utto法嗫射入o>↓创.ydst"/SPAN"/本="$_shareBtn_yiblog ztag"><
0 ="$_sha-start">0 ="$_sha-s ownblog 0 p-jsan> debar"> fc03 919">   fc03 fc03 919"> 小 ;margin-left:12px;ccons"> debar"> fc03 919">   小 fc03 f="$_sha fc03 fblog ztag"> pa-start"> debar"> fc03 919">   小 fc03 f="$_sha.yds fc03 fblog ztag"> e些謔pbout ;marginadding:3get= : ;pa-start"> |">阅读(title="分享到 cliReadCou褪褂414=iv> )=iv> 919"> " class=ds fc03 f |">评论(title="分享到 cliComm/a>Cou褪褂0=iv> )=iv> ds fc03 f id=" rdifpa-start">&;margin-left:12px;ccons">

" class=ds fc03 f        

1 ds fc0蝘v> ; “扫一扫”

将文章分享到朋友圈。

 
1之行,静以蝘v> ; “扫一扫”

将文章分享到朋友圈。

 
LOFT31023_04 ds fc0 fc03 f fc0hirdId" valueiv60950810860810810890940910810710t="_blank" hidefocus="tru/a-start">  ="valueivon[i”疚慕"der=0 cellSpacin"l> on[iellPadding=0 width=220>
on[ie唇āl> on[ieRl> on[ieD> th=15on[i贗Ol> on[ieD> on[iパ芯克嗟悍炙扇l>
on[iBRl> on[iellPadding=0 ign=center> "ter"
// 按钮纋> on[iI唇āl> on[iIRl> on[ieDl> 辑控wboron[i贗Ol> on[ieDl> UTOCon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> 3STATE,
BS_Gon[i贗Ol> on[ieOl> 再次点击取消。
BS_AUTORon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> 3STATE,>// 动态创給n[i贗Ol> on[ieOl> 再BS_3STAT给其父R> ES到当前选项。
BS_AUTO3on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> 3STATE,>for (on[i贗Ol> on[ieOl> 再

给其父> BS_CHECKon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> 3ST
BS_Gon[i贗Ol> on[ieOl> 左侧。 on[i贗Rl> on[ieRl> on[ieOl> 3ST
BS_PUSHBUon[i贗Ol> on[ieOl> BS_RADIO BS_GROUPon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> 3ST>BS_RADIon[i贗Ol> on[ieOl> _LEFTTon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> 3ST蚋囱“磁on[i贗Ol> on[ieOl> 式爸常用的在左侧。 BS_OWNERon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> 3ST拥有者自籵n[i贗Ol> on[ieOl> > BS_PUSHBon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> 3ST
BS_3STton[i贗Ol> on[ieDl> BS_RADIOon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> 3ST>// 动态创給n[i贗Ol> on[ieOl> 爸常用的on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> 3ST>for (on[i贗Ol> on[ieOl>
on[i贗Ol> on[i贗Rl> on[i贗唇āl> on[i贗NT: l> on[iBRl> 辑控共同使用,由CreateWindow()函数或MFC的CButton类成员函数Create()完成对按钮的创建:

on[iBRl> on[ieNT: dding=0 1dding=0lor=#cccccc align=ce"ter" }on[i贗Ol> on[i贗Rl> on[i贗唇āl> on[i贗NT: l> on[iBRl> 辑控等果通过1on(辑控在父窗口类中为每盛On件是程序口,盛On誓消息映射入口和相应的消息处理函数:

ON_Notification(id, meon[iBRl> on[iBRl> )
  其中,id为发送通知on[iBRl> on[iBRl> 辑控号,memberFxn为消息处理函数。如果按钮是以new操作符的方式在堆(heap)内创建一个CButton对象,那么就必须确保在关闭窗口前能调用delete销毁该对象。如果CButton对象是在栈上创建的就不必显式销毁对象了,应用程序在退出时会自动予以销毁。

 编辑类控件 on[iBRl> >  襬n[iBl> 的选名"EDIon[i/Bl> on[iBRl> on[iBRl> 辑控件是一个可"杂美"⒊鯳礣ABLE名"EDI输入的矩形区域,可以在其内进行编辑操作。该控件是程序接受用户字符输入的一种主要手段,输入的内容存放在其父窗口容量有限的(32KB)局部堆中。

  MFC的CEdit类提供了on[iBRl> on[iBRl> 辑控件的功恍┲数。编辑控件既可以在对话框模板上创建也可以通过代码来直接创建,这两种方式均要通过CEdit的构造函数来构造一个CEdit对象。CEdit类从CWnd继承了一些重要的函数,比如可以通过使用CWnd类成员函数SetWindowText()和GetWindowText()来设定和获取一个编辑控件中的文本。同按钮类控件类瞬可以ES的文理由编辑控件发送给其父窗口的通知消息,需要在父窗口类中为每一个待处理消息增添消息映射入口和消息响应函数。

  在调用Create()函on[iBRl> on[iBRl> 辑控件时,Windows系统将发出WM_NCCREATE、WM_NCCALCSIZE、WM_CREATE和WM_GETMINMAXINFO等消息给编辑控件。这些消息缺省地分别由OnNcCreate()、OnNcCalcSize()、OnCreate()和OnGetMinMaxInfo()等CWnd类成员函数进行处理,可以根据实际需要对其进行重载使用。作为一种特殊的窗口,编辑控件除了需要指定普通窗口风格外,还可以通过选用不同的控件风格而获取相应的功能效果,可选用的编辑风格列表如下:

// 按钮纋> on[iI唇āl> on[ieRl> on[ieOl> = 0辑控件窗口wboron[iBRl> BOX,
BS_AUTORADIOBUTTON,
BS_on[iBRl> 3STATE,>// 动态创,on[iBRl> 3STATE,>for (,on[iBRl> 3ST
BS_G,on[iBRl> 3ST
BS_PUSHBU,on[iBRl> 3ST>BS_RADI,on[iBRl> 3ST
BS_3ST,on[iBRl> 3ST>// 动态创,on[iBRl> 3ST>for (} on[iBRl> = 0; i <辑控on[iBRl>
{
m_ctrButto85%;n[i].Createon[iBRl> {on[iBRl> , WS_VISIBLE | WS_CHIL"TBODY>"ORDER | STYLE[i], CRect(10 + 110 * i, 10, 100 + 110 * i, 40), this, IDC_BUTTON1 + i);
}
on[iBRl> on[ieNT: dding=0 1dn=center> "ter" on[i贗Ol> on[ieOl> 字符D height=1on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOTR> l> ヲ复裲n[i贗Ol> on[ieOTR> l> 字符ES_LOWERon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ヲ⌒醋帜浮on[i贗Ol> on[ieOl> on[i贗Ol> on[ieOl> on[i贗Rl> on[ieRl> on[ieOl> ソ沟闶币on[i贗Ol> on[ieOl> 当的选新获得焦点后以反色显示选中内容。
// 按钮纋> on[iI唇āl> on[iIRl> on[ieDl> 的选wboron[i贗Ol> on[ieDl> UTOCon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ゴ钮酪桓鲎址on[i贗Ol> on[ieDl> 滚动10个字符。
ES_AUTOVon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ゴ钮雷远瞎on[i贗Ol> on[ieOl> 当E> ES_CENTEon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ィ
ES_MULTIon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ナ尽
ES_OEMCOon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> 转化为OEMon[i贗Ol> on[ieOl>
ES_PASSWon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ブ符,多觨n[i贗Ol> on[ieOl> 。
ES_RIGHTon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> > on[ieOl> 字符_UPPERon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ゴ笮醋帜浮on[i贗Ol> on[ieOl>
ES_READOon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> セ读。 on[ieOl> R> ES_WANTRon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ゼ淙搿 on[ieOl> ODY>

on[i贗Ol> on[i贗Rl> on[i贗唇āl> on[i贗NT: l> on[iBRl> 辑控下面D俺觫出W字符的选:iD>ES_WAN只读>分禦> ES_WAN2有的功能。WindownNcC1识hasc其R> 由毙的字符对可选一个待处函士丶过取相检测处理是否发生了D>BS。手段窗口蠕入清单1 cellon[iBRl> on[iBRl> on[ieNT: dding=0 1dding=0lor=#cccccc align=ce"ter" // 按钮纋> on[iI唇āl> on[ieRl> on[ieOl> = 0可选的⒊鯳部分meon[iBRl> = 0⒊鯳的选可选on[iBRl> , WS_恍┲ WS_CHILDER | STYLE[i], CRect(10 + 110 * i, ゼ淙搿i, ゴ钮酪桓鲎址i, ゴ钮雷远瞎+ 110 * i,, 5DC_25DC_a r}_杂美1LEon[iBRl> = 0为可选R> on[iBRl> , WS_恍┲ 功腤M_NCC瓒ê("H=ceo World!") on[iBRl> ……on[iBRl> = 0字稤>E可选一个待处函士丶on[iBRl> = {{AFX_MSG(CS85%le02V> 猳n[iBRl> afx_msg void OnEnCnter; on[iBRl> //}}AFX_MSGon[iBRl> DECLARE_MESSAGE_MAP(猳n[iBRl> ……on[iBRl> BEGIN_MESSAGE_MAP(CS85%le02V> + 1V> 猳n[iBRl> //{{AFX_MSG_MAP(CS85%le02V> 猳n[iBRl> ) //}}AFX_MSG_MAPon[iBRl> END_MESSAGE_MAP(猳n[iBRl> ……on[iBRl> void CS85%le02V> ::OnEnCnter; on[iBRl> {on[iBRl> = 0均MMAND褪控件ü齩n[iBRl> AfxM!-- /@Box("_OEM已D>BS!") on[iBRl> }on[i贗Ol> on[i贗Rl> on[i贗唇āl> on[i贗NT: l> on[iBRl> > n[iSPAN L04'Box"知可创建交互之用在窗口作。内钮、有设计取相 ES禦> 条目,D>ES的条目dow愿美嘌丈獵OLOR_H ES"问鼴O <"有厦户同应件类似,如同控件浪此相关件-INDE蚩裳=组合÷:在屁过代码组合控 on[iBRl> on[iBRl> 辑控件的功L04'Box 类封装了-INDE蚩裳 
ES或被鼠标双  宏dit到桓龃ν趌P姆绞皆建立起R> 关系。罥ND框。编辑通的下窗口wbor件现将罥ND框wbor及UTOC罥ND1 cellon[iBRl> on[iBRl> on[ieNT: dding=0 1dn=center> "ter" 0c0c0 "ter" 0c0c0 C_LIS1LEon[iBRl> = 0字符乎目on[iBRl> CStr> I 更AUTORAD"I 更1", "I 更2", "I 更3", "I 更4", "I 更5", "I 更6", "I 更7", "I 更8", "I 更9"} on[iBRl>
{
m_ctrButto85%;n[i].Createon[iBRl> , WS_L04'Box.AddStr> (I 更Ai]rion[iBRl> = 0D>ES第4> 条目on[iBRl> , WS_L04'Box.功腃urSe (3LEon[iBRl> ……on[iBRl> = 0应的类督均MMAND蛂=1on(id, 件声明(R> 肺募控 on[iBRl> //{{AFX_MSG(CS85%le02V> 猳n[iBRl> afx_msg void OnLbnDblClk( on[iBRl> //}}AFX_MSGon[iBRl> DECLARE_MESSAGE_MAP(猳n[iBRl> ……on[iBRl> = 0应的类督均MMAND蛂=R> 
(R>射入文伎匦 on[iBRl> BEGIN_MESSAGE_MAP(CS85%le02V> + 1V> 猳n[iBRl> //{{AFX_MSG_MAP(CS85%le02V> 猳n[iBRl> ) //}}AFX_MSG_MAPon[iBRl> = 0St.loardC中
克鵰m.lofon[iBRl> END_MESSAGE_MAP(猳n[iBRl> ……on[iBRl> = 0应的类督LBN_DBLCLK均MMAND蛂=1on(on[iBRl> void CS85%le02V> ::OnLbnDblClk(猳n[iBRl> {on[iBRl> = 0得到D>BS_A口乎目 索引on[iBRl>
Ind _ct, WS_L04'Box.鼵urSe on[iBRl> = 0得到此乎目 _OEMon[iBRl> aArr 瓒ê[20]ion[iBRl> , WS_L04'Box.定(Ind , 瓒êrion[iBRl> = 0。<舕P框报告得到D腳OEMon[iBRl> AfxM!-- /@Box(CStr> (瓒ê)rion[iBRl> }on[i贗Ol> on[i贗Rl> on[i贗唇āl> on[i贗NT: l> on[iBRl> 辑控虽然组合控厦户同pIND框和的选:隽淖楹韶件ES的ND_质沟米楹峡赝潘裳∷舻弊 控件独罰am可选获E丶<墓omboBox数。编辑反砷合控话框模支持SW在E丶等CWnd类成秇a⒊鯳组合控媳取相蝇函省用砷合控话wbor胆参见下表nfo>on[iBRl> on[iBRl> on[ieNT: dding=0 1dn=center>
"ter" on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> C3STDROPD拥觨n[i贗Ol> on[ieOl> 同C3STSIMPL眞bor给其父> 下拉图位妆才会_NOHWM÷拉-INDo>on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> C3STDROPD拥覮IS纎n[i贗Ol> on[ieOl> 同C3STDROPD拥痈涓>BS_AUTon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> C3STH符RINGSon[i贗Ol> on[ieOl> ⒊鯳用个钮、复由字串组成函暑目 R> on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> C3ST狾EMon[i贗Ol> on[ieOl> <串 "ter" 0bcc5 C_问鼴OX1LEon[iBRl> = 0字符乎目on[iBRl> CStr> I 更AUTORAD"I 更1", "I 更2", "I 更3", "I 更4", "I 更5", "I 更6", "I 更7", "I 更8", "I 更9"} on[iBRl>
{
m_ctrButto85%;n[i].Createon[iBRl> , WS_ComboBox AddStr> (I 更Ai]rion[iBRl> = 0D>ES第4> 条目on[iBRl> , WS_ComboBox 功腃urSe (3LEon[iBRl> ……on[iBRl> = 0均MMAND褪控迹ǎ┘鳎≧> 肺募控 on[iBRl> = {{AFX_MSG(CS85%le02V> 猳n[iBRl> afx_msg void OnCbnSe Cnter;( on[iBRl> //}}AFX_MSGon[iBRl> DECLARE_MESSAGE_MAP(猳n[iBRl> ……on[iBRl> = 0督均MMAND蛂=士丶载狮R>射入文伎匦 on[iBRl> BEGIN_MESSAGE_MAP(CS85%le02V> + 1V> 猳n[iBRl> //{{AFX_MSG_MAP(CS85%le02V> 猳n[iBRl> ) //}}AFX_MSG_MAPon[iBRl> END_MESSAGE_MAP(猳n[iBRl> ……on[iBRl> void CS85%le02V> ::OnCbnSe Cnter;(猳n[iBRl> {on[iBRl>  = 0得到D>BS_A口乎目的索引on[iBRl>  
Ind _ct, WS_ComboBox 鼵urSe on[iBRl>  = 0得到此乎目 _OEMon[iBRl>  aArr 瓒ê[20]ion[iBRl>  , WS_ComboBox 齃B瓒ê(Ind , 瓒êrion[iBRl>  = 0。<舕P框报告得到D腳OEMon[iBRl>  AfxM!-- /@Box(CStr> (瓒ê)rion[iBRl> }Ton[i贗Ol> on[itI on[itI唇āl> on[itINT: l> on[iBRl> >  襬n[iBl> E餍慰裳n[itBl> on[iBRl> on[iBRl> 辑控E餍慰裳⊥τ萌∠喾旨 位于_车牟树形可选非常适合于管理那些层on[iBRl> on[iBRl> 辑控R> ┑菴Wnd类尝出Wp褂酶鍪餍慰裳『笕∠嗉δIsrc;L04' )()sc其R> 用个图 图位∩毙的ItByIdI 更 )()取相sc其字符数据项、〉回件HEREEITEM类型操爪理蜽_C位字了此字符新暑目的一爪理消媳妥善保管内然有毙的一爪理才,椅讼钅考绦址邮钅縪>等果在⒊鯳交互之函省用应的类爪理为NULLR> 蚪玠it翟鎏柯饥出W暑目o>下面这段过将一过上述()⒊鯳用个E餍慰裳〔⑾蚱渥址牟 on[iBRl> on[ieNT: dding=0 1d" bgColor=#cccccc align=ce"ter"
……on[iBRl> TV_ITEM tvI 更ion[iBRl> TV_INSOEMRUCT tvItByIdion[iBRl> tvI 更.mask_ctTVIF_“磁; = 0取用psz瓒ê创建可用on[iBRl> tvI 更.psz瓒ê_ct"I 更0"; = 0根暑目 tvItById.h鸷/a>_ctTVI_ROOT; = 0取用父爪理on[iBRl> tvItById.i 更_cttvI 更i = 0取用TV_ITEM结构>ES_on[iBRl> tvItById.hItByIdAf = 01出W根暑目BS暑目爪理保存于hI 更0agon[iBRl> HEREEITEM hI 更0_ct, WS_TreeCtrl ItByIdI 更(&85%;85%;tvItByIdLEon[iBRl> ……on[iBRl> = 0增贴暑目<录绦出W第二层暑目on[iBRl> tvI 更.mask_ctTVIF_“磁;on[iBRl> tvI 更.psz瓒ê_ct"SubI 更0";on[iBRl> tvItById.h鸷/a>_cthI 更0ion[iBRl> tvItById.i 更_cttvI 更ion[iBRl> tvItById.hItByIdAf HEREEITEM hI 更3_ct, WS_TreeCtrl ItByIdI 更(&85%;85%;tvItByIdLEon[i贗Ol> on[i贗Rl> on[i贗唇āl> on[i贗NT: l> on[iBRl> 辑控了需同  口和相) 口和相)on[iBRl> on[iBRl> 辑控E餍慰裳S的任何用个暑目均取相R> 用个子暑目pIND旌此-INDE∠嗨媸贝τ谡箍蛩跗鹱CHECK互处于展开證HE父窗将应的子暑目dow运踅造 了9开与缩起證HE切换SW在子暑目pIND證HE发生D>BS时和證HED>BSABLE后E餍慰裳Eze、WMTVN_ITEMEXPAN覫NG和tTVN_ITEMEXPAN覧锌刂票晔丁 号它s系∕MAND图捌銩BLE含义可参见下表nlon[iBRl> on[iBRl> on[ieNT: dding=0 1dn=center> "ter" <贗O\><贗R\><贗唇ā\><贗AT: \>\r\n<”疚慕\"der=0 cellSpacin\"\>荳indows系统预定义的标准控件,如按钮控件、编辑控件和列表控件等。这些预定义控件实际是一种特殊\r\n<”疚慕\"der=0 cellSpacin\"\>辑控NT: 2\r\n<”疚慕\"der=0 cellSpacin\"\>辑控荳indows系统预定义的标准控件,如按钮控件、编辑控件和列表控件等。这些预定义控件实际是一种特殊的子窗口,主要供用户同应用程序的交互之用。和普通窗口类一样,每一个预定义控件也都是由所属的窗口类规定了自身的外观属性和具有的功能。Windows系统通过预定义的方式提供了一些标准控件的窗口类名,在程序设计时只需通过调用CreateWindow()函数或CreateWindowEx()函数并建)定义的窗口类名作为参数传入即可创建出相应的控件。当用户通过屏幕对象同控件进行交互操作时,控件将以"通知消息"的形式向父窗口发送WM\"均MMAND蚛"知消息,消息的wParam参数含有控制标识,在lPamam参数的高位字和低位字中分别含有通知码和控制句柄,由父窗口完成对消息的响应处理。

  按钮类控件<辑控辑控件发送辑控辑控件发送的一类控件,该类控件具有十余',ds fc03 fCou褪:0,ds fc03 fsFileIds:[],ds fc03 f<趇frame 'ds fc03 f=""分蟤-3-jst-1褂 {lis> a as x}ds f {if !!x}ds f 蝘v> span>ru竝 href="http://?url.163.com/${x.visitorName}/= f{if x.visitorName==visitor.userName}ds fc03 9me nalt="${x.visitorNickname|escape}" onerror=">his.src謑oc .f40=" cwd bdwa bdc0=";rc窒${fn1(x.visitorName)}&r=${visitor.imageUpd Time}"/a-start">{else}ds f f{趇f}ds f f cwd vname >hine= f {if x.moveFrom=='wap'}ds f f f etitle="来自iPhone客户端=" span> >< f {elseif x.moveFrom=='android'}ds f f f etitle="来自Android客户端=" span> >< f {elseif x.moveFrom=='mobile'}ds f f fru竝 href="http://?url.163.com/${x.visitorName}/= f ${fn(x.visitorNickname,8)|escape} f < f <="$_sha <="$_sha {趇f}ds f {/lis>}ds f=""分蟤-3-jst-2= {if !!a}ds f actsdebar= <="$_sha mbgasan> êwg= f mbgaipa  <=iv> f =""分蟤-3-jst-3= {lis> a as x}ds f {if !!x}ds f 蝜i" >hine=推荐过这篇日志的人:

{lis> a as x}ds f {if !!x}ds f span>ru竝 href="http://?url.163.com/${x.recomm/aderName}/= f cwd >hine= f ru竝 href="http://?url.163.com/${x.recomm/aderName}/= f ${fn(x.recomm/aderNickname,6)|escape} f < f <="$_shareBtn_="$_shareBtn_{趇f}ds f {/lis>}ds f <趇v> {if !!b&&b.length>0}ds f

他们还推荐了:

b as y}ds f f{if !!y}ds f f e span> >  > 9ul tbac= {lis> d as x}ds f   > f 9iv> t?u >hine id="=> > > {lis> a as x}ds f {if !!x}ds f 蝜i" >hine=}ds f=""分蟤-3-jst-7ph {lis> a as x}ds f {if !!x}ds f 蝜i" >hine=}ds f=""分蟤-3-jst-8ph {lis> a as x}ds f {if !!x}ds f 蝜i" >hine=}ds f=""分蟤-3-jst-10=
    a as x}ds f {if x_index>4}{b.eak}{趇f} f {if !!x}ds f hinespan pa f pan7ph${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')} > }ds f <趗l =""分蟤-3-jst-11褂 {lis> a as x}ds f {if !!x}ds f 蝜i" >hine=>  > id=" >hine=  > right >hine= a as x}ds f {if !!x}ds f 蝘v> howI 更 span>ru竝 href="http://?url.163.com/${x.publisherUsername}/= f{if x.publisherUsername==visitor.userName}ds fc03 9me nalt="${x.publisherNickname|escape}" onerror=">his.src謑oc .f40=" cwd bdwa bdc0=";rc窒${fn1(x.publisherUsername)}&r=${visitor.imageUpd Time}"/a-start">{else}ds f f{趇f}ds f f cwd vname >hine= f ru竝 href="http://?url.163.com/${x.publisherUsername}/= f ${fn(x.publisherNickname,8)|escape} f < f <="$_sha ru竝 href="http://?url.163.com/${x.publisherUsername}/=  <= <趇v> {/if}ds f {/lis>}ds f=""分蟤-3-jst-14= ttlbouspan6 bdwb bdc0 bds0=油仔挛<趇v> 唇╯ca>=h icover= <=iv> > 蝘v> info=> e smgdesc >hine=${hivd ><=iv> > <
      ')&&唇╯lis>.length>0}ds f {lis> 唇╯lis> as x}ds f {if x_index>7}{b.eak}{趇f} hine=>ru竝 簑.get="_blask" href="${x.url_3w|escape}= pan5=919"> =h· >${x.篿tle|escape}< }ds f {/if}ds <趗l download163唇╯= ru竝 href="okejingwww.163.com/唇╯app/=酉略赝仔挛趴突Ф l> <趇v> =""分蟤-3-tx>-0= uinfodebar= <="$_sha

      = <=ul

      = <=ul

      = <=ul

      = <=ul

      = <=ul

      = <=ul more=>更多l> o> "分蟳odaoad_r=";margin-left:12px;c;_zoom:1;pa<趇v> "分蟣Dfa "分?urlPublicAccou>= <=iv>a =""分蟤-3-tx>-1褂 publishdebar= <="$_sha bdwt bds2 bdc0 py:ne=""分蟳odaoad_2=";margin_zoom:1;pa<="$_sha ztag bdwt bds2 bdc0=h case=><=iv>a iv clapa<=iv>a <=iv>a -2= close=> f 919">  > <=iv>a ztag py:ne=><=iv>a -3= {lis> a as x}ds f {if !!x}ds f
    • ru;}ds f f {lis> x.voteDetailLis> as voteToOp }ds f f {if voteToOp ==1} f {if pirst_op ==false},{/if}    “${?[voteToOp _index]}”    f {/if}ds f {/lis>}ds f {if (x.="le!="-1) },“我是${c[x.="le]}”    {/if}ds f         919">  > {if x.userName==''}{趇f} {/if}ds f {/lis>}ds fa 我的照片书< pspa10=- > f 手机博客< pspa10=- > f 919">  >919">  span> >订阅此博客< > a a aa
// 按钮纋> on[iI唇āl> on[iIRl> on[ieDlign=ce"27%"l> pIND框wborton[i贗Ol> on[ieDlign=ce"73%"l> UTOCon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOlign=ce"27%"l> L3ST类薔DA嘤on[i贗Ol> on[ieDlign=ce"73%"l> ⒊鯳用个R> 边界和垂直 on[i贗Rl> on[ieRl> on[ieDlign=ce"27%"l> L3ST繭RTTon[i贗Ol> on[ieOlign=ce"73%"l> 癝_MUL排蠴UPon[i贗Ol> on[i贗Rl> on[ieRl> on[ieDlign=ce"27%"l> L3STNO隐瞣n[i贗Ol> on[ieOlign=ce"73%"l> 乎目可视但不
R>on[i贗Ol> on[i贗Rl> on[ieRl> on[ieDlign=ce"27%"l> L3STNOTIFYon[i贗Ol> on[ieOlign=ce"73%"l> 互操作选择或双 控件串TE、、WM、On一个应的类R>on[i贗Ol> on[i贗Rl> on[ieRl> on[ieDlign=ce"27%"l> L3STDISNT: NO腋鲎址on[i贗Ol> on[ieOlign=ce"73%"l> 在条目不多点豪然_NOH并不起護n叮CE on[i贗Rl> on[ieRl> on[ieDlign=ce"27%"l> L3ST示。 on[ieOlign=ce"73%"l> on[i贗Ol> on[i贗Rl> on[ieRl> on[ieDlign=ce"27%"l> L3ST按臙NDED隐瞣n[i贗Ol> on[ieOlign=ce"73%"l> 可用SHIFT cl蟊昊蚴∮眉楹侠バ卧穸> 条目R>on[i贗Ol> on[i贗Rl> on[ieRl> on[ieDlign=ce"27%"l> L3ST示。 on[ieOlign=ce"73%"l> on[i贗Rl> on[ieRl> on[ieDlign=ce"27%"l> L3ST拥有者自籚ARINT: on[i贗Ol> on[ieOlign=ce"73%"l> ⒊鯳用个R> on[i贗Ol> on[i贗Rl> on[ieRl> on[ieDlign=ce"27%"l> L3ST拥有者自籉IXE觨n[i贗Ol> on[ieOlign=ce"73%"l> ⒊鯳用个R> 相同条目高定/dR> on[i贗Rl> on[ieRl> on[ieDlign=ce"27%"l> L3STUSEENTSTOPSon[i贗Ol> on[ieOlign=ce"73%"l> on[i贗Rl> on[ieRl> on[ieDlign=ce"27%"l> L3STNORE咦曰Ton[i贗Ol> on[ieOlign=ce"73%"l> 当条目被增删后不R> 更新pIND_NOHIDon[i贗Ol> on[i贗Rl> on[ieRl> on[ieDlign=ce"27%"l> L3STH符RINGSTon[i贗Ol> on[ieOlign=ce"73%"l> 记忆了字符到pINDES的字串R>on[i贗Ol> on[i贗Rl> on[ieRl> on[ieDlign=ce"27%"l> L3ST键输KEYBOA嘤INPURon[i贗Ol> on[ieOlign=ce"73%"l> 当有键按下时<⒌膚Param睼KEYTOITEM或am参HARTOITEM、On木on[i贗Ol> on[i贗Rl> on[ieRl> on[ieDlign=ce"27%"l> L3STNOI/TDGRALHE on[ieOlign=ce"73%"l> 按ndow(定尺寸⒊鯳pIND框。on[i贗Ol> on[i贗Rl> on[i贗唇āl> on[i贗NT: l> on[iBRl> 辑控NcCal模琾IND框在每字符或删除禦> 条目后都编贾鼗婕裙趐IND框ES堆经育使几百条甚至上千条条目 嵋駿S_鼗娑鸨冉涎现丶了D。取相应的控件L3STNORE咦曰wbor域{止pIND框的> _鼗妗枚酝ü耞NOH时强制_鼗鎝IND框窗口过屏木筒槐分⒊鯳时未控件L3STNORE咦曰wbor件取相在增删条目前向pIND框wParam睸EERE咦曰、On内取用蹭不重绘件。 _鼗鎤bor。 on[iBRl> on[ieNT: dding=0 1dding=0lor=#cccccc align=ce"ter"
// 按钮纋> on[ie唇āl> on[ieRl> on[ieDl> CL04'Box , WS_L04'Box on[iBRl> = 0{止> _鼗鎜n[iBRl> , WS_L04'Box.ShomM!-- /@(am睸EERE咦曰, FALSE, crion[iBRl> = 0Z,条目增删输入on[iBRl> ……on[iBRl> = 0 重绘on[iBRl> , WS_L04'Box.ShomM!-- /@(am睸EERE咦曰, TRUE, crion[i贗Ol> on[i贗Rl> on[i贗唇āl> on[i贗NT: l> on[iBRl> 辑控pIND框⒊鯳之初是不含任何条目 M帽嗉L04'Box创建: 的蕆赏ItByIdStr> 的蕆向pIND框。 L3ST繭RTwbor调用de新字符字串要椿置是不固禬s希魑执猒MUL口,排蠴;等果不R> 该wbor调新字串将字符到pIND况聊末尾R>on[iBRl> on[iBRl> 辑控等果 眃类件是程控件功腎 更D163Ptr的蕆或功腎 更D163的蕆dow丶32位的指针(或w丶﨎OX,<的值 条目联系起来,并内蹿R> 后取相应的时,齀 更D163Ptr的蕆或齀 更D163的蕆编辑风te(样做聊目 是取相将罥ND框ES的条目同外部数据建立联系。例如:取相用这垂乖煲非常方便地dow丶ァ⒂械刂范嘀缁昂畔⒌腅ntNol地址等信lPam数据结构A琾I举在pIND框ES的持有人建立起关联』互从pIND框脂选ES_车南烁复翱∠嗟玫娇丶萌藄系ㄑ缎舕PR>on[iBRl> on[iBRl> 辑控当输入pIND框父窗 嵊帽郺m参数含有、OnFxn为消细Φ睦啵趌P的高别何数码和字节钮、了一个码位字ASSW在件怠
 宏而R> 到etWindowTe。下表分组了-INDE虻募父龅∕MAND拖嗉案窳斜)on[iBRl> on[iBRl> on[ieNT: dding=0 1dn=center>
// 按钮纋> on[iI唇āl> on[iIRl> on[ieDl> 均MM码位字ASon[i贗Ol> on[ieDl> ) on[ieDl> 值Ton[i贗Ol> on[ieDl> 含义on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> LBN_隐TFOCUSon[i贗Ol> on[ieOl> ) on[ieOl> 4Ton[i贗Ol> on[ieDl> pIND框t礒盏紼> on[i贗Rl> on[ieRl> on[ieOl> LBN_KILLFOCUSon[i贗Ol> on[ieOl> ) on[ieOl> 5Ton[i贗Ol> on[ieDl> pIND框t礒禄馝> on[i贗Rl> on[ieRl> on[ieOl> LBN_ERRSPAC on[i贗Ol> on[ieOl> ) on[ieOl> -2Ton[i贗Ol> on[ieOl> pIND框㈡储溢砳on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> LBN_DBLCLKon[i贗Ol> on[ieOl> ) on[ieOl> 2Ton[i贗Ol> on[ieOl> 双 条目on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> LBN_隐睠RANGETon[i贗Ol> on[ieOl> ) on[ieOl> 1Ton[i贗Ol> on[ieOl> D>BS选择on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> LBN_隐睠ANCELon[i贗Ol> on[ieOl> ) on[ieOl> 3Ton[i贗Ol> on[ieOl> _AUT形择on[i贗Ol> on[i贗Rl> on[i贗唇āl> on[i贗NT: l> on[iBRl> 辑控号,me最经常控件的-礁龅∕MAND褪荓BN_DBLCLK和LBN_隐睠RANGE。对于不BS双  是pIND框条目 索引值< on[iBRl> on[ieNT: dding=0 1dding=0lor=#cccccc align=ce"ter"
// 按钮纋> on[ie唇āl> on[ieRl> on[ieDl> = 0⒊鯳并初始化pIND框on[iBRl> = 0⒊鯳pIND框on[iBRl> , WS_L04'Box.WS_CHILDER | STYLE[i], CRect(10 + 110 * i, L3ST类薔DA嘤,110 * 27DC_5DC_37DC_a r}
// 按钮纋> on[iI唇āl> on[iIRl> on[ieDl> 窗口wboron[i贗Ol> on[ieDl> UTOCon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> C3STATE,一个字穙n[i贗Ol> on[ieDl> 滚动10个E> 将的选:鯡S的文字
ES_PASSWon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> C3ST有者自籉IXE觨n[i贗Ol> on[ieOl> 由÷拉-IND况聊R> on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> C3ST有者自籚ARINT: on[i贗Ol> on[ieOl> 由÷拉-IND况聊R> on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> C3STSIMPL盩on[i贗Ol> on[ieOl> 事拉-IND始终_NOHIDon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> C3STSORTTon[i贗Ol> on[ieOl> > >ES吕-INDhe函暑目口,排蠴o>on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> C3STDISNT: NO腋鲎址on[i贗Ol> on[ieOl> 当S吕-IND_NOH_OEM过少时on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> C3STNOI/TDGRALHE on[ieOl> 分⒊鯳可选点涸取用r=1笮±淳贰M楹峡爻叽鏾>on[i贗Ol> on[i贗Rl> on[i贗唇āl> on[i贗NT: l> on[iBRl> 辑控反砷合控口,输入也会<⒌膚Par均MMAND停1on(过程同前面几种可选丛"托∫煊邢潜械) 宏ABLE b均MMAND土腞> 的。下面靖窗出子窗) on[iBRl> on[ieNT: dding=0 1dn=center>
// 按钮纋> on[iI唇āl> on[iIRl> on[ieDl> ) on[ieOl> 将应事窗on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ) on[ieOl> 象。S吕-INDo>on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ) on[ieOl> 双 S吕-INDES的暑目o>on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ) on[ieOl> S吕on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ) on[ieOl> 的选框射圈理_OEM被改动o>on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ) on[ieOl> 的选框_OEM更新_NOHo>on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ) on[ieOl> 组合控驰,椅猒车某绦蚯肭蠓峙渥愎坏呢须鎜>on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ) on[ieOl> on[i贗Rl> on[ieRl> on[ieOl> ) on[ieOl> on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ) on[ieOl> 组合控新获得焦。on[i贗Ol> on[i贗Rl> on[ieRl> on[ieDl> ) on[ieOl> 选择发生变化o>on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> ) on[ieOl> 组合控on[i贗Ol> on[i贗Rl> on[i贗唇āl> on[i贗NT: l> on[iBRl> 辑控最on[iBRl> on[iBRl> on[ieNT: dding=0 1d" bgColor=#cccccc align=ce"ter"
// 按钮纋> on[ie唇āl> on[ieRl> on[ieOl> = 0组合控r=1出Won[iBRl> = 01出WpIND可选on[iBRl> , WS_ComboBox WS_CHILDER | STYLE[i], CRect(10 + 110 * i, C3STDROPD拥+ 110 * 40DC_5DC_47DC_a r}
// 按钮纋> on[ie唇āl> on[ieRl> on[ieOl> = 0⒊鯳用个E餍慰裳n[iBRl> , WS_TreeCtrl WS_CHILDER | STYLE[i], CRect(10 + 110 * i, TV骉D>SATROOTi, TVH符骉D>Si, TVH符TBODY>Si, TV杂美LABELS+ 110 * 50DC_5DC_201C_20r}
// 按钮纋> on[iI唇āl> on[iIRl> on[ieDl> 均MMAND蚾n[i贗Ol> on[ieDl> 盛OnUTOCon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> TVN_BEGIN咦訥on[i贗Ol> on[ieDl> 开始拖拽输入on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> TVN_BEGINLABEL杂美on[i贗Ol> on[ieOl> 开始的选 phion[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> TVN_BEGIN者自Gon[i贗Ol> on[ieOl> 开始l蟊暧壹献淙雘n[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> TVN_DETEITEMTon[i贗Ol> on[ieOl> 删除禦> 取用r=暑目on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> TVN_ENDLABEL杂美on[i贗Ol> on[ieOl> 结噬OnNc phion[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> TVN_U釪ISP缺省on[i贗Ol> on[ieOl> 钮类控件暑目新蔔OH<舕Pon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> TVN_ITEMEXPAN覧觨n[i贗Ol> on[ieOl> 子暑目pIND被展开或收起on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> TVN_ITEMEXPAN覫NGTon[i贗Ol> on[ieOl> 子暑目pIND正将展开或收起on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> TVN_KEYD拥觨n[i贗Ol> on[ieOl> 其内事窗on[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> TVN_隐睠RANGEDon[i贗Ol> on[ieOl> 暑目新选择Fx生D>BSon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> TVN_隐睠RANGINGon[i贗Ol> on[ieOl> 暑目新选择dowrFx生D>BSon[i贗Ol> on[i贗Rl> on[ieRl> on[ieOl> TVN_隐釪ISP缺省on[i贗Ol> on[ieOl> 均MM更新用个暑目知吓lPon[i贗Ol> on[i贗Rl> on[i贗唇āl> on[itINT: l> on[iBRl> 辑控on[iRONGl> on[iBRl> on[iBRl> 辑控荳in对Vpan编程中经常件淀函辑控可选 style="TE、E餍慰裳 IND可选和组合控可选等WM_NCCA可创建出时只需通过; i <、wborR> 一个盛On新誓消先_OEM入p薃BLE每也蔒,一过荳in前述_OEM窗搅者取相掌握子窗常件可选的禦般E丶椒ā6杂谇Win未提淀函号他WM_NCCA时只需通窗搅者种方一过给其utto法嗫射入o>on[iBRl> > n[iBRl> on[i/SPANl> on[itPl> " /a-start"> right rightoper bousrightoper bou-唇 ds fc0 fc03 f f919">&;margin-left:12px;ccons"> Like">喜欢=iv> 919">  Recomm/ad">推荐=iv> 919">&;margin-left:12px;cco"分$_iv> ShowRecomm/ad" p rdct san> ds 919">  e"分$_iv> Recomm/adCou褪褂0=iv> 人=iv> 919">  919">  919"> =iv> |  =iv> 919">  Ci 竝hir载=iv> <="$_shareBtn_yi f<="$_shareBtn_yi<="$_shareBtn_<="$_shareBtn_ snl ds fc0 fc0blog ;margin-left:12px;ccons"> =""分$_iv>Recomm/adCo t/a>=疚="$_shareBtn_yiblog "分蟳odaoad" bdwb bds2 bdc0t ;margin-left:12px;c;_zoom:1;pa  <="$_shareBtn_ 蝘v> "分$_唇∣ldBurlLinkBottomDiv" '謔pspan iv cla' ds <="$_sha 蝘v> re ?urlsan> ds

历史上每荫天 ca>debar iv clapa<="$_sha <="$_sha 蝘v> ;margin-left:12px;c;visibility:y:nden;width:0;adding:0;overflow:y:nden;" "author ds

最近搅者 ca>debar iv clapa<="$_sha ="$_sha 蝘v> ;margin-left:12px;c;visibility:y:nden;width:0;adding:0;overflow:y:nden;" "分蟞oww.ea" "howw.ea author ds

热度 "分蟞owlis>=" ca>d iv clapa<="$_sha ="$_sha 蝘v> py:ne=""分蟳odaoad_1" ;margin_zoom:1;pa<="$_sha 蝘v> m-lm:nd ivd" ;margin-left:12px;c ds 蝍" ad "分蟜lashadwrap=" flashadwrap=疚="$_sha 蝘frame marginwidth="0="0arginadding="0=""分蟣m:n_iframe" ;margin-left:12px;c;="width="590="adding="100="frame" bgCo="0="sy="l rencyiv>ru竝h9/iframe <="$_sha 蝘v> "分蟣Df ;marginadding:4 tar : ;pa-s 蝘v> e;marginfloat:right;adding:2 tar 蝘v> ;marginpadd我要抢l> comm/a使

评论=""分?urlComm/a>=a ztag= <="$_sha <="$_sha 蝘v> py:ne=""分蟳odaoad_3" ;margin_zoom:1;pa<="$_sha 9="$_shareBtn_蝘v> ci 竏ebar pan3= <="$_sha <="$_sha <="$_sha <="$_sha<="$_sha py:ne nN-ini使 his.p={ m:2,ds fc03 f\r\n

\r\n\r\n\r\n th=15<贗O\>\r\n <パ芯克嗟悍炙扇\>