`
hcmfys
  • 浏览: 347068 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

全要

 
阅读更多

<!-- [if !mso]> <style> v/:* {behavior:url(#default#VML);} o/:* {behavior:url(#default#VML);} w/:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--><!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!-- [if !mso]> <object classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui> </object> <style> st1/:*{behavior:url(#ieooui) } </style> <![endif]--><!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]-->

GetFocus

返回有输入焦点的窗口,键盘输入发送给这个窗口,整个系统只有一个窗口有输入焦点 .

GetActiveWindow() 是活动窗口,不一定有输入焦点,而且每个线程就有一个活动窗口。

GetFocus() 得到的肯定是 ActiveWindow ,但是 GetActiveWindow() 的窗口不一定是有输入焦点的窗口。

返回值:
如果活动并且无窗口的控件具有当前的键盘焦点(由控件的包容器判定),那么返回该控件;如果它不具有键盘焦点,则返回 NULL
否则返回具有键盘焦点的 CWnd 对象(同 CWnd::GetFocus )。

说明:
调用该函数判定一个 COleControl 对象是否具有键盘焦点。当调用 SetFocus 时,一个活动的无窗口控件获得键盘焦点。

我在改一个程序,动态修改一个对话框界面上元素的位置,自然 Tab Order 的顺序也要做动态改动,我就要用 GetFocus() 来判断当前焦点的位置,可是我发现焦点在编辑框和按钮上时没有问题,一旦焦点在 CCombox 框上, GetFocus() 的返回就有问题,用 UINT nCurrentItem = GetFocus()-> GetDlgCtrlID(); 返回的值始终是 1001 ,我的界面上有两个 CCombox ,两个的返回值都是 1001 ,实际上一个是 113 ,一个是 114 GetFocus() 的返回是什么 TmpWnd ,实在是搞不懂?

可以提供什么线索吗?或者有什么办法在程序里动态调整 Tab Order

我设断点跟了一把
CWnd* pWnd = GetFocus();
CWnd* pWnd1 = GetDlgItem(IDC_COMBO_CLIENT);

GetDlgItem(IDC_COMBO_CLIENT)-> SetFocus();
pWnd = GetFocus();
最后的 pWnd 返回竟然和 pWnd1 不相同
其中, pWnd 是什么 CTempWnd hWnd=0x000f0566
pWnd1
CCombox hWnd=0x001803ac

A combo box consists of a list box combined with either a static control or edit control.

GetFocus
返回的是 combo box 中的 Edit CWnd 指针。
修改你的程序的最后一句,
pWnd = GetFocus()-> GetParent();
你就会发现 pWnd pWnd1 相同了。

另外,
UINT nCurrentItem = GetFocus()-> GetParent()-> GetDlgCtrlID()

这一句可以得到 combo box ID

请问怎么给对话框中的某个 edit 控件设置焦点 , 我用 setfocus 怎么不行 , dialog 中的成员函数 GoToDlgCtrl 也不行 , 请问怎么搞 ?

SetFocus() 函数的正确使用
如果在 InitDialog 中调用此函数将不能实现预期的功能 , 比如 , 在一个登录的对话框实现

如下功能 : 如果读取的用户名不为空 , 就设置用于输入口令的控件为当前控件 , 使用如下

语句在 InitDialog 中时会没有任何作用
GetDlgItemText(IDC_WL_USERNAME,strName);
if(strName!= " ")
GetDlgItem(IDC_WL_IPASSWORD)-> SetFocus();
原因分析 : 在创建对话框时 , 对话框并没有显示出来 , 而此时调用此函数返回的句柄是

NULL
解决方法 : 把这段语句放到重载的函数 OnShowWindow

HitText

通过位置得到该项的索引

void
 CBizmeetDlg::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult) 
{
 

//
取得鼠标的位置
 
CPoint pt;
 
GetCursorPos( &pt); 

m_listCtrl.ScreenToClient(&pt);
 



int
 iIndex = m_listCtrl.HitTest(pt,NULL);
 

if
(-
1
 != iIndex )
 
{
 
CString strMess ;
 
strMess.Format(
"
你选中第%d"

,iIndex);
 
AfxMessageBox(strMess);
 
}
 


*pResult = 
0
;
}

其实关键是要有ScreenToClient 这个函数的使用,我先前没有用这个函数,HitTest 老是返回-1, 搞得我都头大了。不过这个不能用于SubItem, 那应该要用SubItemHitTest

LVHITTESTINFOht;
GetCursorPos(&(ht.pt));
m_friendList.ScreenToClient(&ht.pt);

m_friendList.HitTest(&ht);
if (ht.iItem==-1)
  // 检查是否有item 选中
  return ;

CListCtrl::HitTest

int HitTest(LVHITTESTINFO* pHitTestInfo) const
int HitTest(CPoint pt,UINT* pFlags=NULL) const

返回值:
返回参数pHitTestInfo 指定位置的项的索引,否则为-1

参数:

pHitTestInfo

含有要进行击中测试的位置以及接受击中测试有关结果信息的LVHITTESTINFO 结构的地址。

pt

被测试的指针。

pFlags

指向接受测试结果信息的整数的指针。请参阅联机文档 平台SDK” 中有关LVHITTESTINFO 结构的flags 成员的注解。


说明:
如果有,则决定哪一个列表视图项在指定的位置上。
可以通过使用结构中flags 成员的LVHT_ABOVE, LVHT_BELOW,LVHT_TOLEFT 以及LVHT_TORIGHT 的值来决定是否滚动列表视图控件的内容。上述两种标志可以自由组合,例如,假设其位于客户区域的左上角。
可以通过测试结构中flags 成员的LVHT_ONITEM 值来决定是否给定的位置位于列表视图项的上方。该数值通过结构flags 成员中的 LVHT_ONITEMICONLVHT_ONITEMLABEL,LVHT_ONITEMSTATEICON 的值的位或运算而获取。

ScreenToClient

  函数功能:该函数把屏幕上指定点的屏幕坐标转换成用户坐标。

  函数原型:BOOL ScreenToClient(HWND hWnd, LPPOINT lpPoint)

  参数:

  hWnd :指向窗口的句柄,此窗口的用户空间将被用来转换。

  lpPoint :指向POINT 结构指针,该结构含有要转换的屏幕坐标。

  返回值:如果函数调用成功,返回值为非零值,否则为零。

  Windows NT :若想获得更多错误信息,请调用GetLastError 函数。

  注释:该函数应用hWnd 参数标识的窗口和POINT 结构给定的屏幕坐标来计算用户坐标,然后以用户坐标来替代屏幕坐标,新坐标是相对于指定窗口的领域的左上角。

先调用 GetWindowRect 后再调用 ScreenToClient, 这个时候得到的 rect 和直接使用 GetClientRect 得到的值是相等的。有时候需要获得窗口矩形的大小和客户区矩形的大小二者的值,故需要分别调用 GetWindowRect GetClientRect 。如果只需要获得客户区矩形的大小,调用 GetClientRect 就行了。 GetWindowRect GetClientRect 函数的说明如下:

CWnd::GetClientRect
void GetClientRect( LPRECT lpRect ) const;
Parameters:
lpRect
Points to a RECT structure or a CRect object to receive the client coordinates. The left and top members will be 0. The right and bottom members will contain the width and height of the window.
Remarks:
Copies the client coordinates of the CWnd client area into the structure pointed to by lpRect. The client coordinates specify the upper-left and lower-right corners of the client area. Since client coordinates are relative to the upper-left corners of the CWnd client area, the coordinates of the upper-left corner are (0,0).

CWnd::GetWindowRect
void GetWindowRect( LPRECT lpRect ) const;
Parameters:
lpRect
Points to a CRect object or a RECT structure that will receive the screen coordinates of the upper-left and lower-right corners.
Remarks:
Copies the dimensions of the bounding rectangle of the CWnd object to the structure pointed to by lpRect. The dimensions are given in screen coordinates relative to the upper-left corner of the display screen. The dimensions of the caption, border, and scroll bars, if present, are included.

GetWindowRect() 得到的是在屏幕坐标系下的 RECT ;( 即以屏幕左上角为原点
GetClientRect()
得到的是在客户区坐标系下的 RECT 即以所在窗口左上角为原点

GetWindowRect()
取的是整个窗口的矩形;
GetClientRect()
取的仅是客户区的矩形,也就是说不包括标题栏,外框等;

第一个函数获得的是窗口在屏幕上的位置,得到的结果可能是这样 CRect(10,10,240,240);
第二个函数和它不同,它只获得了客户区的大小,因此得到的结果总是这样 CRect(0,0,width,height);

ScreenToClient() 就是把屏幕坐标系下的 RECT 坐标转换为客户区坐标系下的 RECT 坐标。

The GetClientRect function retrieves the coordinates of a window's client area. The client coordinates specify the upper-left and lower-right corners of the client area. Because client coordinates are relative to the upper-left corner of a window's client area, the coordinates of the upper-left corner are (0,0).

GetClientRect 得到的是客户区的大小,也就是说这样得到的左上角永远是( 0 0

The GetWindowRect function retrieves the dimensions of the bounding rectangle of the specified window. The dimensions are given in screen coordinates that are relative to the upper-left corner of the screen.

GetWindowRect 是窗口相对于整个屏幕的坐标,屏幕左上点为 0 0

相互转化用 ScreenToClient 或者 ClientToScreen

ClientToScreen
The ClientToScreen function converts the client coordinates of a specified point to screen coordinates.
BOOL ClientToScreen(
HWND hWnd, // window handle for source coordinates
LPPOINT lpPoint // pointer to structure containing screen coordinates
);

Parameters
hWnd
Handle to the window whose client area is used for the conversion.
lpPoint
Pointer to a POINT structure that contains the client coordinates to be converted. The new screen coordinates are copied into this structure if the function succeeds.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero.
虽然存在调用 GetWindowRect 后再调用 ScreenToClient==GetClientRect ,但 ScreenToClient ()和 ClientToScreen() 两者都是属于 WINDOWS API 函数,可能是存在一定的冗余设计,但意义不同。
不过在 .Net Framework 下对 WINDOWS API 函数进行了重新整理和优化,在获取控件或窗口的屏幕坐标和客户区坐标时更方便的多,只需要得到与控件或窗口相对应屏幕坐标和客户区坐标属性值就可以了

ScreenToClient
The ScreenToClient function converts the screen coordinates of a specified point on the screen to client coordinates.
BOOL ScreenToClient(
HWND hWnd, // window handle for source coordinates
LPPOINT lpPoint // address of structure containing coordinates
);
Parameters

hWnd
Handle to the window whose client area will be used for the conversion.
lpPoint
Pointer to a POINT structure that contains the screen coordinates to be converted.
Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero.

例如:右下角坐标等于左上角坐标加上窗口的尺寸

CRect rt;
GetWindowRect(&rt);
CPoint pt;
pt = rt.BottomRight();

我的总结:

如果需要获得窗体在屏幕上的位置,使用 GetWindowRect

如果需要获得窗体的大小,使用 GetClientRect

原创 CHeaderCtrl 收藏

CListCtrl LVS_REPORT 模式时,就需要用到 CHeaderCtrl 取得 CHeaderCtrl 指针: 方法一:

CListCtrl *pListCtrl = (CListCtrl *)GetListCtrl(); CHeaderCtrl *pHeaderCtrl =pListCtrl->GetHeaderCtrl(); ASSERT(pHeaderCtrl); 方法二:

CWnd *pWnd = pListCtrl->GetDlgItem(0); // 注: CListCtrl 分配给 CHeaderCtrl Control ID 一直都是 0 ASSERT(pWnd); CHeaderCtrl *pHeaderCtrl = static_cast(pWnd);ASSERT(pHeaderCtrl);

自定义标头项的外观通过在首次创建标头控件 (CHeaderCtrl::Create) 时设置 dwStyle 参数,可以定义标头项或标头控件本身的外观和行为。以下是可以设置的样式的取样及其用途: 若要使标头项看上去像一个普通按钮,请使用 HDS_BUTTONS 样式。 如果要采取操作以响应标头项上的鼠标单击(如按照特定的列对数据进行排序,像在 Microsoft Outlook 中那样),请使用此样式。 若要在鼠标光标经过标头项时给予标头项 热跟踪 的外观,请使用 HDS_HOTTRACK 样式。 当指针经过本来是平面的栏中的项时,热跟踪显示三维轮廓。 若要指示应隐藏标头控件,请使用 HDS_HIDDEN 样式。 HDS_HIDDEN 样式指示标头控件用作数据容器而不是可视控件。此样式不自动隐藏控件,但却影响 CHeaderCtrl::Layout 的行为。 WINDOWPOS 结构的 cy 成员中返回的值将是零,表示不应该让用户看到此控件。

表头控制( CHeaderCtrl )通常应用在窗口中的文本或数据的列表之上。一般为数据列的标题,可以包括多个部分,用户可以拖动每个部分并可以控制每 列的宽度。表头控制类提供了普通表头控制的基本方法,只有在 WINDOWS95 以后版本系统中才提供,其方法包含在 afxcmn.h 文件中,一般与标签控 制( CTabCtrl) 和列表控制 (CListCtrl) 组合使用。
1.1
表头控制的对象结构
1.1.1
表头控制对象的建立方法
CHeaderCtrl &cheaderCtrl
建立表头控制对象
Create
建立表头并绑定对象
CHeaderCtrl::Create
的格式如下: BOOL Create( DWORD dwStyle, const RECT&
rect, CWnd* pParentWnd, UINT nID );
其返回值非零时初始化成功,否则失败。
参数 dwStyle 用来确定表头控制类型; rect 用来确定表头控制的大小和位置; ParentWnd 用来确定表头控制的父窗口; nID 用来表示表头控制的标志。
表头控制风格包括:
HDS_BUTTONS
表示表头控制外观类似按钮;
HDS_HORZ
表示表头控制为水平排列;
HDS_VERT
表示表头控制为垂直排列;
HDS_HIDDEN
表示表头控制为隐藏模式。
它也可以使用普通类控制风格,包括:
CCS_BOTTOM
设置控制位置在父窗口的底部并与父窗口同样宽度;
CCS_NODIVIDER
在控制顶部形成两个像素的高亮区;
CCS_NOHILITE
在控制顶部形成一个像素的高亮区;
CCS_NOMOVEY
在响应 WM_SIZE 消息时重置大小并水平排列;
CCS_NOPARENTALIGN
使控制自动靠近父窗口的顶部或底部;
CCS_NORESIZE
设置初始大小或新值时使控制使用默认宽度和高度;
CCS_TOP
设置在父窗口客户区域的顶部并与父窗口同样宽度;
同样表头控制也可以使用窗口控制风格,包括:
WS_CHILD
建立一个子窗口,不能用于 WS_POPUP 窗口类型;
WS_VISIBLE
建立一个初始时不可见的窗口;
WS_DISABLED
建立一个初始时无效的窗口;
WS_GROUP
确定可用光标移动的控制群组;
WS_TABSTOP
确定可用 TAB 控制移动站点;
表头控制一般分为两个步骤,首先确定表头控制的数据结构,然后建立表头控制并绑定对象。
1.1.2
表头控制的属性
表头控制的属性包括取得表头控制中项目的数量 GetItemCount 、取得表头控制中某一项目的内容 GetItem 和设置表头控制中某一项目的内容 SetItem
1.1.3
表头控制的操作方法
表头控制的操作方法包括向表头控制中插入一个新项目 InsertItem 、从表头控制中删除一个项目 DeleteItem 和绘制表头中给定的项目 DrawItem 等。
1.2
表头控制的数据结构
在使用表头控制时,首先必须建立一个数据结构 HD_ITEM, 其结构定义如下:
typedef struct _HD_ITEM
{ UINT mask; //
结构成员有效控制位
int cxy; //
表头项目的宽度
LPSTR pszText; //
表头项目内容
HBITMAP hbm; //
表头项目的位置句柄
int cchTextMax; //
表头内容字符串长度
int fmt; //
表头项目的格式
LPARAM lParam; //
应用程序定义的 32 位数据
} HD_ITEM;
屏蔽控制位说明了数据结构成员中包含的有效数据,可以是下面标志的组合:
HDI_BITMAP hbm
成员有效
HDI_FORMAT fmt
成员有效
HDI_LPARAM lParam
成员有效
HDI_TEXT pszText
cchTextMax 成员有效
HDI_WIDTH cxy
成员有效并确定项目宽度值
格式标志位 fmt 可以是以下标志的组合:
HDF_CENTER
表头项目居中
HDF_LEFT
表头项目左对齐
HDF_RIGHT
表头项目右对齐
HDF_BITMAP
表头显示一个位图
HDF_OWNERDRAW
由主窗口自绘表头项目
HDF_STRING
表头项目为一个字符串
1.3
表头控制的应用技巧
于表头控制无法单独使用,其主要是配合列表控制和标签控制,并多以文字表头应用多见, InsertItem SetItem GetItem 是常用的方 法,如在列表控制时利用 InsertColumn 属性就可以增加一个表列的文本标题,具体用法和技巧见列表控制和标签控制。下面以在列表控制中的增加表列 的方法来具体说明:
lvcol.pszText=
;// 设置第一列名
lvcol.iSubItem=i; //
表列宽
m_ListCtrl.InsertColumn(i++,&lvcol);//
插入一列
lvcol.pszText=
;// 第二列名
lvcol.iSubItem=i;
lvcol.cx=70;
m_ListCtrl.InsertColumn(i++,&lvcol);//
插入一列

GetHeaderCtrl():

CListCtrl 控件上边那一排 Column

CListCtrl::GetItemRect

BOOL GetItemRect(int nItem,LPRECT lpRect,UNIT nCode) const

返回值:如果成功,则返回非零值,否则为0

参数:

nItem

要获取位置的项的索引值。

lpRect

接受绑定矩形的RECT 结构的地址。

nCode

要获取绑定矩形的列表视图项的部分。它可为下列值之一:

·

LVIR_BOUNDS

返回整个项的绑定矩形,包括图标和标签。

·

LVIR_ICON

返回图标或小图标的绑定矩形。

·

LVIR_LABEL

返回项文本的绑定矩形。


说明:
在当前视图中获取某项的全部或部分的绑定矩形。

CHeaderCtrl::GetItemRect

BOOL GetItemRect(int nIndex, LPRECT lpRect) const;

返回值:如果成功,则返回非零值,否则为0

参数:

nIndex

标头控件项目基于0 的索引。

lpRect

指向RECT 项目地址的指针,以接收有界矩形的更多信息。


说明:
此函数实现Win32 消息HDM_GETITEMRECT 的功能,可参阅联机文档 平台SDK”

CListCtrl::GetItemPosition

BOOL GetItemPosition(int nItem,LPPOINT lpPoint) const

返回值:如果成功,则返回非零值,否则为0

参数: nItem 要获取位置的项的索引值。
lpPoint
在视图坐标中接受项左上角位置POINT 结构的地址,按视图坐标。

说明:获取列表视图项的位置。
//////////////////////////////////////////////////////////////
CListCtrl::GetItemRect

BOOL GetItemRect(int nItem,LPRECT lpRect,UNIT nCode) const

返回值:如果成功,则返回非零值,否则为0

参数: nItem 要获取位置的项的索引值。
lpRect
接受绑定矩形的RECT 结构的地址。
nCode
要获取绑定矩形的列表视图项的部分。它可为下列值之一: · LVIR_BOUNDS 返回整个项的绑定矩形,包括图标和标签。
· LVIR_ICON
返回图标或小图标的绑定矩形。
· LVIR_LABEL
返回项文本的绑定矩形。

说明:
在当前视图中获取某项的全部或部分的绑定矩形。

先看看执行是否成功 , 如果成功再看看值是屏幕坐标还是窗口坐标 , 需要的话自已转一下 .

列表视图控件(List Control
列表视图控件是一种非常常用的控件,在需要以报表形式显示数据时,列表控件通常是最好的选择,许多专用的数据报表控件,也是在它的基础上派生而来。与树视图类似,列表控件可以由多个子项目组成,并且支持大图标、小图标、列表和报表4 种方式显示信息,如图1 所示。
1 列表视图的4 种显示方式
列 表视图包含一个项目列表,而其中每个项目由图标、项目名称和多个子项组成,每一个子项所包含的项目的数目必须相同,属性相同的每个子项显示在同一个列中。 列表视图控件有两个重要的数据结构LVCOLUMNLVITEMLVCOLUMN 用于定义报表方式下的 的结构;LVITEM 用于定义 的结 构。这两个结构的定义及说明如下:

typedef struct _LVCOLUMN {
UINT mask; //
说明此结构中哪些成员是有效的
int fmt; //
列的对齐方式
int cx; //
列的初始宽度
LPTSTR pszText; //
列的标题
int cchTextMax; //pszText
所指向的缓冲区的大小
int iSubItem; //
与列关联的子项的索引值,从0 开始
int iImage; //
与列关联的图像列表中指定图像的索引值
int iOrder; //
第几列,0 代表最左一列
} LVCOLUMN, FAR *LPLVCOLUMN;
typedef struct _LVITEM {
UINT mask; //
说明LVITEM 结构中哪些成员有效
int iItem; //
项目的索引值( 可以视为行号)0 开始
int iSubItem; //
子项的索引值( 可以视为列号)0 开始
UINT state; //
子项的状态
UINT stateMask; //
状态有效的屏蔽位
LPTSTR pszText; //
主项或子项的名称
int cchTextMax; //pszText
所指向的缓冲区大小
int iImage; //
关联图像列表中指定图像的索引值
LPARAM lParam; //
程序定义的32 位参数
int iIndent; //
表示图像位置缩进的单位
} LVITEM, FAR *LPLVITEM;

列表项常用的属性如下:View 指定程序运行后列表视图控件最初显示的方式,可以设置为Icon (大图标)、SmallIcon (小图标)、List (列 表)或Report (报表);Single selection 表示每次只能选中一个项;Auto arrange 使得项目在IconSmall Icon 显示方式下能够自动排序;Edit Labels 表示可以编辑项目的卷标;No column header 表示取消控件所有列的标题。

GetTextExtent

  函数功能:使用该函数获得所选字体中指定字符串的高度和宽度

  函数原型:CSize GetTextExtent(LPCTSTR lpszString, int nCount)

  参数:

  lpszString 是字符串的指针

  nCount 是所包括的字符数

  返回值CSize 是包含(cxcy2 个成员的结构,cx 是字符串的宽度,cy 是字符串的高度。

CComboBox::SetItemHeight

int SetItemHeight( int nIndex, UINT cyItemHeight );

返回值:
如果下标或高度值无效,则返回CB_ERR 。否则为0

参数:

nIndex

指明要设置的是组合框中列表项的高度还是编辑控件(或静态文本)的高度。
如果组合框的风格是CBS_OWNERDRAWVARIABLEnIndex 指定了列表中待设置高度的项的下标。否则nIndex 必须为0 ,而且要设置的是所有列表项的高度(它们的高度相同)。
如果nIndex-1 ,则将设置组合框中编辑控件或者静态文本的高度。

cyItemHeight

指定待设置对象的高度(以像素为单位)。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics