msdn上說 ws_hscroll屬性 在表單創建好之后是不能去掉的,所以 modifystyle、setwindowlongptr之流的就別想了,然后還有一種辦法 是在onnccalcsize 里面呼叫 showscrollbar(SB_BOTH,FALSE);這種方法確實可行,不過似乎和我想要的邏輯不太一樣,這個是當表單位置發生改變重新計算位置,這個showscrollbar函式放在其他地方就不起作用,哪位大佬講一講為什么啊,我想要主動隱藏滾動條,而不是只能放在onnccalcsize里
uj5u.com熱心網友回復:
"是當表單位置發生改變重新計算位置"視窗第一次 創建成功后 顯示 也 是 這樣如:
void CMaxListCtrlDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if(nType==SIZE_MAXIMIZED)
{
afxDump << nType << "\n";
}
if(IsWindow(m_ctrlList))
{
CRect rc;
GetClientRect(&rc);
// 修改列寬
m_ctrlList.SetColumnWidth(1, rc.Width());//LVSCW_AUTOSIZE_USEHEADER);// -2
m_ctrlList.MoveWindow(&rc);
m_ctrlList.ShowScrollBar(SB_HORZ, FALSE);// must after MoveWindow
}
// TODO: Add your message handler code here
}
uj5u.com熱心網友回復:
帶佬,我想當一個成員函式在外面去呼叫這個。uj5u.com熱心網友回復:
直接呼叫OnSize(UINT nType, int cx, int cy)
uj5u.com熱心網友回復:
帶佬 剛剛試了一下不行 只有 OnNcCalcSize有用uj5u.com熱心網友回復:
m_ctrlList.MoveWindow(&rc);m_ctrlList.ShowScrollBar(SB_HORZ, FALSE);// must after MoveWindow
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/30269.html
標籤:界面
