MFC单文档应用程序 50

我想建立一个对话框,里面加入树形控件,然后我想做出像工具栏那样可以停靠在主框架上,工具栏通过enabledocking来完成,那我的对话框应该怎么实现停靠呢?答的好加10... 我想建立一个对话框,里面加入树形控件,然后我想做出像工具栏那样可以停靠在主框架上,工具栏通过enabledocking来完成, 那我的对话框应该怎么实现停靠呢?
答的好加100.
展开
 我来答
lf460
2011-03-04 · 超过50用户采纳过TA的回答
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:108万
展开全部
对于基于对话框的应用程序,MFC AppWizard还没有对工具条的支持,但可以通过使用CToolBar类来构造生成工具条,我们下面介绍如何为对话框程序添加工具条。
用MFC AppWizard(EXE)生成一个基于对话框的应用程序,接受其默认设置,取名为demodialog。
给应用程序添加一个Toolbar的名称为IDR_TOOLBAR1的工具条资源,名称分别如下:
ID_NEW ‖生成新的程序等
ID_FILE_OPEN ‖打开文件
ID_FILE_SAVE ‖保存文件
ID_EXIT ‖退出程序
然后在对话框的头文件中添加如下的成员变量:
CToolBar m_wndToolBar;
在resoure编辑框中编辑这些toolbar资源,设置好大小和彼此的距离,添加工具条前,需要初始化工具条,添加如下所示的代码到demodialog.cpp的OnInitDialog()函数中。
如果要使工具条是平面浮动的,可以添加如下的代码到对话框初始化函数中。
……
if(!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT, WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||!m_wndToolBar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0(〃创建工具条失败\n〃);
return -1;‖不能创建,返回报-1
}RepositionBar
s(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);‖定位工具条
……
如果要使工具条是立体静态的,添加如下的代码到对话框初始化函数中。
……
if(!m_wndToolBar.Create(this)||!m_wndToolBar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE(〃创建工具条失败\n〃);
return -1;‖不能创建,返回
}RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);‖定位工具条
……
编译生成的程序,就实现了对话框的工具条,如果需要添加另外的对话框的工具条代码实现,用ClassWizard为工具条添加消息映射即可。
手机用户52999
2011-03-05 · TA获得超过142个赞
知道答主
回答量:182
采纳率:100%
帮助的人:33.6万
展开全部
存第一次点击的坐标pt,并用一个BOOL型全局变量bDraw用于判断是否正在线,将其值为true;
然后添加WM_MOUSEMOVE消息响应函数,如果bDraw为true,在里面先将整个客户区用背景色(如默认的白色)填充,然后在pt与当前鼠标的位置之间画一条直线。
添加WM_LBUTTONUP消息响应,在里面将bDraw置为false;

当然如果按照上面我说的方法,只能花一条直线,化第二条时会把之前的一条覆盖掉。另外还有可能出现闪烁。用双缓冲绘图可以很好的解决这两个问题,你自己好好想想吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lucerfu
2011-03-06 · 超过28用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:69.2万
展开全部
我以前也想过这个问题, 因为一点击按钮或菜单 就弹出对话框 , 但这个对话框的位置确不能固定在一个地方 好像是随机的啊! 不知道怎么停靠在主框架上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式