首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

SetWindowPos如何没起作用呀?晕菜!

2012-01-26 
SetWindowPos怎么没起作用呀?晕菜!! CRectrectGetDlgItem(IDC_AreaTree)- GetClientRect(&rect)ClientT

SetWindowPos怎么没起作用呀?晕菜!!

CRect           rect;      
GetDlgItem(IDC_AreaTree)-> GetClientRect(&rect);      
ClientToScreen(&rect);      
CRect           rect1;      
GetClientRect(&rect1);      
::SetWindowPos(GetDlgItem(IDC_AreaTree)-> m_hWnd,HWND_TOPMOST,rect.right,      
                                                                    rect.bottom,rect1.right-rect1.left,      
                                                                            rect1.bottom-rect1.top,NULL);      
GetDlgItem(IDC_AreaTree)-> ShowWindow(SW_SHOW);

[解决办法]
::SetWindowPos(GetDlgItem(IDC_AreaTree)-> m_hWnd,HWND_TOPMOST,rect.right,
rect.bottom,rect1.right-rect1.left,
rect1.bottom-rect1.top,SWP_FRAMECHANGED);
[解决办法]
::SetWindowPos(GetDlgItem(IDC_AreaTree)-> m_hWnd,HWND_TOPMOST,rect.right,
rect.bottom,rect1.right-rect1.left,
rect1.bottom-rect1.top,SWP_SHOWWINDOW);
[解决办法]
CRect rect;
GetDlgItem(编辑框控件ID)-> GetClientRect(&rect);
GetDlgItem(编辑框控件ID)-> ClientToScreen(&rect);
ScreenToClient(&rect);
::SetWindowPos(GetDlgItem(IDC_AreaTree)-> m_hWnd,HWND_TOPMOST,rect.left, rect.bottom,0,0,SWP_SHOWWINDOW|SWP_NOSIZE|SWP_NOZORDER);

[解决办法]
你不就是要点击某个Edit的时候,把tree移到它的下面吗?
移动到的坐标是(rect.left, rect.bottom)这个不刚好是Edit的左下角么?
参数SWP_NOSIZE根本不会改变tree的大小阿。
你真的试过么?

[解决办法]
三种方法,可以使tree位于最前端,只有tree覆盖其他的,其他的盖不了tree。
任选其一:
1、打开对话框资源的对话框界面,Ctrl+D,先选中tree,使得其编号为1,保留SWP_NOZORDER参数。
2、编辑.rc文件,把tree控件提到最前面去,保留SWP_NOZORDER参数。
3、::SetWindowPos(GetDlgItem(IDC_AreaTree)-> m_hWnd,NULL,rect.left, rect.bottom,0,0,SWP_SHOWWINDOW|SWP_NOSIZE);去掉SWP_NOZORDER参数,前面第二个参数为NULL。

热点排行