VC下拉菜单控件用代码移动后下拉显示出问题

VC下拉菜单控件用代码移动后下拉显示出问题,第1张

估计是你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中怎样得到一个按钮的位置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9730374.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存