程序中工具条是可移动的。
解决方案 »
- 局域网丢包的问题?
- 请大侠帮忙用CSocket实现一个连接服务端并向服务端发送数据/接收数据,关键是在调用Receive时,如果3秒内没有数据到达,就进行下面的操作。
- 关于VS2003编译调试时候设置问题啦
- vc++与网页访问,一个比较怪的问题?
- 关于自绘按钮的问题
- 求direct draw 的sdk,或者directx sdk7.0
- 加载一个菜单的时候出错了
- 招聘资深证券期货行业开发人员,待遇从优(最底线6K),福利齐全,工作时间比较自由
- (急)vc++中TRACE的问题
- [共享]Codejock Extreme Toolkit Pro 15.0.1
- PlaySound()的头文件是MMSYSTEM.H吗?,lib文件是哪个呢?我在帮助里找了好久都没找到
- 分割窗口后的消息传递问题,请大家看看问题出在哪里
CWnd::GetWindowRect
void GetWindowRect( LPRECT lpRect ) const;
Parameters
lpRect
Points to a CRect object or a RECT structure that will receive the screen coordinates of the upper-left and lower-right corners.
向一个CRect对象或RECT结构,用于接收左上角和右下角的屏幕坐标。
Res
Copies the dimensions of the bounding rectangle of the CWnd object to the structure pointed to by lpRect. The dimensions are given in screen coordinates relative to the upper-left corner of the display screen. The dimensions of the caption, border, and scroll bars, if present, are included.这个函数将CWnd对象的边界矩形的大小拷贝到lpRect所指向的结构中。大小是用相对于显示器屏幕左上角的屏幕坐标给出的,其中包括了标题条,边框和滚动条的大小,如果有的话。
http://community.csdn.net/Expert/topic/3161/3161988.xml?temp=.9445459
CToolBarCtrl::SaveState
void SaveState( HKEY hKeyRoot, LPCTSTR lpszSubKey, LPCTSTR lpszValueName );
CToolBarCtrl::RestoreState
void RestoreState( HKEY hKeyRoot, LPCTSTR lpszSubKey, LPCTSTR lpszValueName );打开程序的时候再通过读注册表得到上一次程序运行时的状态。对吗?
SaveBarState就在主框架的OnClose()中调用。它收集有关工具条的状态信息入其它与框架相关控件条的信息,然后将它们写进注册表里或INI文件中。这依赖于你在程序的InitInstance()函数中是否调用SetRegistryKey()。
SaveBarState只保存位置信息,即工具条停靠在哪里或如果它是浮动的,其相对位置是多少。它不保存诸如按钮状态等与程序相关的信息,因为这些信息与特定的文档一致。同样工具条可能是浮动的或尺寸有所改动,因此既使用分辨不同,其与父框架的关系仍然相同。
恢复工具条上一次的状态只需在OnCreate中所有控制条创建后调用LoadBarState()。表四列出了OnCreate的最后几行,和一个典型的OnClose()函数。向导会为你生成OnCreate,但你得用类向导来生成OnClose()。我选择Unicode字符串"Bars"作为主键,当然你可以随意。在具有多个框架的程序中,每一个框架应有一个唯一的键。表四:保存工具条状态
// final lines of OnCreate
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
LoadBarState(_T("Bars")); // key must match SaveBarState
return 0;
}void CMainFrame::OnClose()
{
SaveBarState(_T("Bars")); // key must match LoadBarState
CMDIFrameWnd::OnClose();////////////////////////////////////////////
////////////////////////////////////////////
///////////////////////////////////////////
照着做了,不知为什么还是是没有效果。