分享
 
 
 

编写多文档应用程序

王朝vc·作者佚名  2006-01-17
窄屏简体版  字體: |||超大  

编写多文档应用程序

作者:王雪松

下载本文示例代码

一、 动态菜单与工具栏

(未登录状态)

(登陆状态)

实现原理:

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 message

0,0 ); // user defined parameters

return 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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有