编写多文档应用程序

凡四长弓

凡四长弓

2016-01-29 11:53

编写多文档应用程序,编写多文档应用程序

编写多文档应用程序
作者:王雪松

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)

下载本文示例代码

一、 动态菜单与工具栏


(未登录状态)


(登陆状态)

实现原理:

1.菜单

BOOL SetMenu(  HWND hWnd,  // handle to window  HMENU hMenu // handle to menu); 
可以改变菜单。

2.工具栏
BOOL CToolBarCtrl::SetState( int nID, UINT nState );
可以改变工具栏按钮状态。
还要调用CFrameWnd::RecalcLayout()函数计算工具栏尺寸。

二、 自制对话条


//创建对话条if(!m_wndBar.Create(this,IDD_DIALOGBAR,WS_CHILD|WS_VISIBLE|CBRS_BOTTOM|CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,IDD_DIALOGBAR))//操纵对话条上的CTabCtrl控件CTabCtrl * ptab=(CTabCtrl *)m_wndBar.GetDlgItem(IDC_TAB_INFO);ptab->InsertItem(0,"操作信息");ptab->SetImageList(&((CMainFrame *)AfxGetMainWnd())->m_imageList);……………//隐藏和显示CListBox控件CListBox * plistInfo = (CListBox*)m_wndBar.GetDlgItem(IDC_LIST_INFO);plistInfo->SetWindowPos(NULL,0,0,GetSystemMetrics(SM_CXSCREEN)-11,75,SWP_NOMOVE|SWP_NOZORDER | SWP_NOACTIVATE|SWP_SHOWWINDOW);
三、 位图按钮与菜单

由于按钮和菜单比较少,没有采用自绘技术,而是采用了
CButton::SetBitmap()和CMenu::SetMenuItemBitmaps()函数,相信读者比作者更清楚这两个函数的用法。

四、 只能运行程序的一个实例

当程序已经运行时,如果再次运行,则激活前一个实例。
实现原理:

1. 只运行一个实例

#define UNIQE_NAME "{1AB792D6-EEF2-4528-9A84-91356811E7A4}"
BOOL CRaclientApp::InitInstance()函数中加入
m_hOneInstance = ::CreateMutex( NULL,FALSE,UNIQE_NAME);if ( GetLastError() == ERROR_ALREADY_EXISTS )//如果存在前一个{//发送消息,激活实例DWORD dwRecipients = BSM_APPLICATIONS; ::BroadcastSystemMessage( BSF_NOHANG,&dwRecipients,ID_RA_MSG, // registered window message0,0 ); // user defined parametersreturn FALSE;}
还要在CRaclientApp::ExitInstance()中
CloseHandle(m_hOneInstance);
2、激活前一个实例
#define ra_MSG "{D48CA923-4925-41cb-8F56-ABAAAFCEF787}"const UINT ID_RA_MSG =::RegisterWindowMessage(ra_MSG);//注册消息
然后再CmainFrame中添加相应的消息处理函数。

五、 自定义视图类

没有用向导生成的类,因此三个子窗口各自不同,比较简单,不介绍了。
详细代码请参看源程序。还有一个数据库版本的,没有更高的价值,因此没拿出来现丑。
错误和不足请看客们指出,共同研究。
Email:hpxs@hotmail.com

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)

展开更多 50%)
分享

猜你喜欢

编写多文档应用程序

C语言教程 C语言函数
编写多文档应用程序

编写高级应用程序

编程语言 网络编程
编写高级应用程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

一个多文档界面的应用程序

电脑网络
一个多文档界面的应用程序

用VB编写WindowsCGI应用程序

编程语言 网络编程
用VB编写WindowsCGI应用程序

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

使用OLEDB编写数据库应用程序

编程语言 网络编程
使用OLEDB编写数据库应用程序

使用ADO编写数据库应用程序

编程语言 网络编程
使用ADO编写数据库应用程序

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

支持换肤功能的窗口实例

支持换肤功能的窗口实例

让网页里的提交按钮变得更靓丽

让网页里的提交按钮变得更靓丽
下拉加载更多内容 ↓