
估计是你MoveWindow干扰了组合框的高度和方向的问题。
一般移动控件,应该先GetWindowRect获取当前,然后通过CRect的加减运算得到新位置,再Move,这样在不干扰组合框高度的情况下,应该就不会出现问题。
GetWindowRect() 得到的是在屏幕坐标系下的RECT(即以屏幕左上角为原点)
GetClientRect() 得到的是在客户区坐标系下的RECT(即以所在窗口左上角为原点,去掉了标题栏计算,仅仅是个大小,返回值的左上角永远为0,0)
ScreenToClient() 就是把屏幕坐标系下的RECT坐标转换为客户区坐标系下的RECT坐标。
我的总结:
如果需要获得窗体在屏幕上的位置,使用GetWindowRect
如果需要获得窗体的大小,使用GetClientRect
已经ID的情况下
int GetDlgItemText( int nID, LPTSTR lpStr, int nMaxCount ) const;
{int GetDlgItemText( int nID, CString& rString ) const;}
或
先CWnd GetDlgItem( int nID ) const;得到该按钮的CWnd指针,然后
int GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const;
{void GetWindowText( CString& rString ) const;}
如果该按钮的ID已经绑定了一个CButton对象,如CButton abc;那就可以之间调用GetWindowText了。
你还是有写的不对的地方
看看这里吧:
>
以上就是关于VC下拉菜单控件用代码移动后下拉显示出问题全部的内容,包括:VC下拉菜单控件用代码移动后下拉显示出问题、VC中如何获取窗口相对桌面的位置、VC中怎样得到一个按钮的位置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)