一个可调大小的对话框,如何让按钮总显示在对话框右端? 附加问题,MFC中ID_FILE_CLOSE是关闭窗口的消息那么,窗口最大化的消息是什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 详细说明一下吧我在窗口里放了CDialogBar,并且在CDialogBar上放了一个按钮,我想让按钮显示在窗口最右端。手工在RESOURCE EDIT里把按钮拽到CDialogBar最右端的话只能在主窗口最大化是有效果,一旦窗口小了,按钮就不可见了怎办? 再详细解释解释,我就是想在rebar上自绘关闭、最小化、最大化几个按钮。谁能帮我控制按钮位置跟主窗口按钮平行? 你可以在OnSize()消息处理函数中对按纽重绘 你可以在OnSize()消息处理函数中对按纽重绘 发现另外一个问题,我自绘的按钮执行的函数是onclosechildframe(){SendMessage(WM_COMMAND,ID_FILE_CLOSE);}结果一按就把所有子窗口全都关闭了,本应该是关闭当前子窗口啊!WHY? 如果你要在DialogBar上面画按钮的话,可以试试看这个方法.void CMainFrame::RecalcLayout(BOOL bNotify) { CFrameWnd::RecalcLayout(bNotify); if (m_wndDlgBar.m_hWnd) { CRect rc; RepositionBars(AFX_IDW_DIALOGBAR,AFX_IDW_CONTROLBAR_LAST,0,reposQuery,rc); TRACE("rc=%d,%d,%d,%d\n",rc.left,rc.top,rc.right,rc.bottom); rc.right -= 12; rc.left = rc.right - GetSystemMetrics(SM_CYCAPTION); rc.top = 2; rc.bottom = rc.top + GetSystemMetrics(SM_CYCAPTION); CWnd* pWnd = m_wndDlgBar.GetDlgItem(IDC_CLOSEBTN); if(pWnd) pWnd->MoveWindow(&rc); }}那个12是我试出来的结果,不过不要问我为什么.ID_FILE_CLOSE执行的是OnFileClose,OnFileClose又调用了CDocument::OnCloseDocument.我估计是你的文档模板都基于同一个Document类,才会出现这种情况,Document关闭时会把所有和它联系的Vie和FrameWnd都关闭的. 在类向导中增加WM_SIZE消息处理函数和按钮句柄,在处理函数中通过按钮句柄移动该按钮到适当位置. 是啦!YuHao说的是了,的确是基于同一个Document类。我那不是一个EDit一个HTMLVIEW么,关闭的时候把跟当前窗口的VIEW相关联的咔嚓了...怎么避免? 不知道你动态生成视图的具体做法是怎样的,如果为每个视图都生成一个Document应该可以避免这个问题.或者为View类增加一个ID_FILE_CLOSE处理函数,把自己关闭了,不要让Document来处理这个消息. houyb_vc(逍遥) : 不要急,是你的终究是你的 关于文件监控的API 磁性窗口 如何获取外网ip 使用CTreeCtrl的DblClk事件打开一个父窗口是桌面的非模态对话框,怎么使焦点切换到对话框? mfc下的OPENGL绘制背景 vb 和 vc 的程序要进行网络通信怎么做? 在线求助,马上给分!!! 请问如何获得其他进程所创建的线程的 Handle? ..::.. 非技术话题:程序员朋友们,你为什么不回家过年? ..::.. MFC程序在进入InitIstance之前报错了 我想学网络编程,但从何做起呢,我以前没有接触过SOCKET之类的东东。 vc中有没有可以调用同一个ie打开相同url的函数,请各位大虾帮个忙?
我在窗口里放了CDialogBar,并且在CDialogBar上放了一个按钮,我想让按钮显示在窗口最右端。手工在RESOURCE EDIT里把按钮拽到CDialogBar最右端的话只能在主窗口最大化是有效果,一旦窗口小了,按钮就不可见了怎办?
onclosechildframe()
{
SendMessage(WM_COMMAND,ID_FILE_CLOSE);
}结果一按就把所有子窗口全都关闭了,本应该是关闭当前子窗口啊!
WHY?
void CMainFrame::RecalcLayout(BOOL bNotify)
{
CFrameWnd::RecalcLayout(bNotify);
if (m_wndDlgBar.m_hWnd)
{
CRect rc;
RepositionBars(AFX_IDW_DIALOGBAR,AFX_IDW_CONTROLBAR_LAST,0,reposQuery,rc);
TRACE("rc=%d,%d,%d,%d\n",rc.left,rc.top,rc.right,rc.bottom);
rc.right -= 12;
rc.left = rc.right - GetSystemMetrics(SM_CYCAPTION);
rc.top = 2;
rc.bottom = rc.top + GetSystemMetrics(SM_CYCAPTION);
CWnd* pWnd = m_wndDlgBar.GetDlgItem(IDC_CLOSEBTN);
if(pWnd)
pWnd->MoveWindow(&rc);
}
}
那个12是我试出来的结果,不过不要问我为什么.
ID_FILE_CLOSE执行的是OnFileClose,OnFileClose又调用了CDocument::OnCloseDocument.我估计是你的文档模板都基于同一个Document类,才会出现这种情况,Document关闭时会把所有和它联系的Vie和FrameWnd都关闭的.
我那不是一个EDit一个HTMLVIEW么,关闭的时候把跟当前窗口的VIEW相关联的咔嚓了...
怎么避免?
或者为View类增加一个ID_FILE_CLOSE处理函数,把自己关闭了,不要让Document来处理这个消息.
不要急,是你的终究是你的