社区
界面
帖子详情
求救:如何去掉动态创建ctreectrl的滚动条?
sunshinecsdn
2006-03-30 09:47:44
自己从ctreectrl继承了一个新的类,在对话框中自动创建一个树,属性里面只设置了WS_VISIBLE,如何把滚动条给去掉啊?
如题。请xdjm帮帮忙啊,搞了2天,也没有去掉,真急人。
...全文
693
11
打赏
收藏
求救:如何去掉动态创建ctreectrl的滚动条?
自己从ctreectrl继承了一个新的类,在对话框中自动创建一个树,属性里面只设置了WS_VISIBLE,如何把滚动条给去掉啊? 如题。请xdjm帮帮忙啊,搞了2天,也没有去掉,真急人。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sunshinecsdn
2006-03-30
打赏
举报
回复
我现在用的就是楼上的方法,在树创建后,添加了n条数据,然后使用movewindow将树移动到固定的位置,滚动条就显示出来了,每次根据父窗口大小移动树,滚动条都会显示出来。
Atomictry
2006-03-30
打赏
举报
回复
在你的继承新类,比如CTreeCtrlEx中增加这么一个接口:
void CTreeCtrlEx::Init()
{
//another way to hide scrollbars
InitializeFlatSB(m_hWnd);
FlatSB_EnableScrollBar(m_hWnd, SB_BOTH, ESB_DISABLE_BOTH);
}
然后在你的主对话框程序的OnInitDialog函数中调用:
m_TreeCtrlEx.Init(); // m_TreeCtrlEx为CTreeCtrlEx的一个实例。
再不明白,留下邮箱。
Atomictry
2006-03-30
打赏
举报
回复
我靠,不早说~ 5555555~
Atomictry
2006-03-30
打赏
举报
回复
实现:
BOOL CYourDlg::ModifyControlStyle(CTreeCtrl* pTreeCtrl,LPCTSTR lpszClassName,DWORD dwRemove,DWORD dwAdd,DWORD dwRemoveEx,DWORD dwAddEx)
{
CWnd* pParentWnd = pTreeCtrl->GetParent();
CFont* pFont = pTreeCtrl->GetFont(); // 保存TreeCtrl字体
// ... 还需要保存TreeCtrl的原来的文本,此处忽略
CRect rcWindow;
pTreeCtrl->GetWindowRect(&rcWindow);
pParentWnd->ScreenToClient(rcWindow);
DWORD dwNewStyle = (pTreeCtrl->GetStyle() & ~dwRemove) | dwAdd;
DWORD dwNewStyleEx = (pTreeCtrl->GetExStyle() & ~dwRemoveEx) | dwAddEx;
UINT nID = pTreeCtrl->GetDlgCtrlID();
pTreeCtrl->ShowWindow(SW_HIDE);
pTreeCtrl->DestroyWindow();
BOOL bResult = pTreeCtrl->CreateEx(dwNewStyleEx,lpszClassName,"",dwNewStyle,rcWindow,pParentWnd,nID);
pTreeCtrl->SetFont(pFont); // 恢复字体
// ... 此处仅仅重新对TreeCtrl赋值,你应该恢复刚才保存的文本信息
CString str;
HTREEITEM hti = pTreeCtrl->InsertItem(_T("parent"));
for (int i = 0; i < 16; i++)
{
str = _T("child");
pTreeCtrl->InsertItem(str, hti);
}
hti = pTreeCtrl->InsertItem(_T("parent2"));
for (i = 0; i < 16; i++)
{
str = _T("child2");
pTreeCtrl->InsertItem(str, hti);
}
return bResult;
}
调用:
CTreeCtrl* pTreeCtrl = (CTreeCtrl *)GetDlgItem(IDC_TREE1);
if (pTreeCtrl->GetStyle() & ES_AUTOVSCROLL)
{
ModifyControlStyle(pTreeCtrl, "SysTreeView32", TVS_NOSCROLL, 0, 0, 0);
}
else
{
ModifyControlStyle(pTreeCtrl, "SysTreeView32", 0,TVS_NOSCROLL, 0, 0);
}
如果想做到通用其他控件,可以用模板实现。
lixiaosan
2006-03-30
打赏
举报
回复
试试
SetScrollInfo() , 设置 nMin and nMax 值相等
sunshinecsdn
2006-03-30
打赏
举报
回复
我的表述有问题啊,重新问。
不是把滚动条去掉,而是隐藏,用我自己重绘的滚动条。如果设置TVS_NOSCROLL,那我就不会得到滚动条的位置,也无法滚动窗口了。
大侠们再帮帮,谢谢!!!
lixiaosan
2006-03-30
打赏
举报
回复
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/treeview/styles.asp
TVS_NOHSCROLL
Version 5.80. Disables horizontal scrolling in the control. The control will not display any horizontal scroll bars.
TVS_NOSCROLL
Version 4.71. Disables both horizontal and vertical scrolling in the control. The control will not display any scroll bars.
teli_eurydice
2006-03-30
打赏
举报
回复
创建的时候设置样式啊
一个傻冒
2006-03-30
打赏
举报
回复
动态创建树控件,就可以动态的创建增加和去掉滚动条.
lamputa_lito
2006-03-30
打赏
举报
回复
当然还是要调用Init先.
lamputa_lito
2006-03-30
打赏
举报
回复
如果可以的话,改写树的afx_msg void OnNcCalcSize(BOOL bCalcValidRects,NCCALCSIZE_PARAMS* lpncsp);函数,不要调用默认的OnNcCalcSize函数好似是可以的.
oracle监听 注册,oracle监听的动态注册和静态注册
参考资料:现象1:1、动态注册参数文件中指定service_names(多个服务名vmdb,sn01,sn02),8i以后数据库实例启动后,会根据参数文件的service_names以及instance_name动态注册到监听器:1 SQL>show parameter service_names;23 NAME TYPE VALUE4 ---...
oracle注册静态监听,Oracle监听的静态注册和动态注册
Oracle监听的静态注册和动态注册发布时间:2020-08-11 09:53:49来源:ITPUB博客阅读:99作者:张冲andy静态注册:通过解析listene.ora文件动态注册:由PMON进程动态注册至监听中在没有listener.ora配置文件的情况下,如果启动监听,则监听为动态注册。用图形化netca创建的监听,默认也为动态注册1.静态注册listener.ora文件,监听的配置文件,...
Oracle监听器的静态注册与动态注册
在运行lsnrctl命令的status时,常会看到如下返回值: 服务“test”包含1个例程。 例程"mydata",状态 UNKOWN,包含此服务的一个处理程序。。。 服务"a"包含1个例程。 例程"mydata",状态 READY,包含此服务的一个处理程序。。。 这里的,状态UNKOWN即表明为静态注册(手动填写参数);
oracle监听动态注册与静态注册
client端如果想要连接到远程的数据库服务器,首先数据库服务器必须启动监听器 oracle监听器的配置在$ORACLE_HOME/network/admin/listener.ora,打开这个文件,我们看到配置如下: SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc)
oracle动态库注册,Oracle监听的静态注册和动态注册
静态注册:通过解析listene.ora文件动态注册:由PMON进程动态注册至监听中在没有listener.ora配置文件的情况下,如果启动监听,则监听为动态注册。用图形化netca创建的监听,默认也为动态注册1.静态注册listener.ora文件,监听的配置文件,静态注册读取该文件,动态注册,不必要可以通过netca工具创建,也可以手动编辑。典型的listener.ora文件内容:LISTEN...
界面
15,975
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章